aboutsummaryrefslogtreecommitdiff
path: root/servers/visual
diff options
context:
space:
mode:
authorJuan Linietsky2017-01-07 18:25:37 -0300
committerJuan Linietsky2017-01-07 18:26:38 -0300
commit2ab83e1abbf5ee6d00e16056a9e9394114026f28 (patch)
tree7efbb375cc4d00d8e8589fcf1b6a1303bec5df2d /servers/visual
parent2a38a5eaa844043b846e03d6655f84caf8a31e74 (diff)
downloadgodot-2ab83e1abbf5ee6d00e16056a9e9394114026f28.tar.gz
godot-2ab83e1abbf5ee6d00e16056a9e9394114026f28.tar.zst
godot-2ab83e1abbf5ee6d00e16056a9e9394114026f28.zip
Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector
Diffstat (limited to 'servers/visual')
-rw-r--r--servers/visual/rasterizer.h24
-rw-r--r--servers/visual/visual_server_canvas.cpp12
-rw-r--r--servers/visual/visual_server_canvas.h4
-rw-r--r--servers/visual/visual_server_raster.cpp42
-rw-r--r--servers/visual/visual_server_raster.h22
-rw-r--r--servers/visual/visual_server_scene.cpp24
-rw-r--r--servers/visual/visual_server_scene.h10
7 files changed, 69 insertions, 69 deletions
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index 27268dcab..de570b7e4 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -242,7 +242,7 @@ public:
virtual RID mesh_create()=0;
- virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes=Vector<DVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
+ virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes=Vector<PoolVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
virtual void mesh_set_morph_target_count(RID p_mesh,int p_amount)=0;
virtual int mesh_get_morph_target_count(RID p_mesh) const=0;
@@ -257,15 +257,15 @@ public:
virtual int mesh_surface_get_array_len(RID p_mesh, int p_surface) const=0;
virtual int mesh_surface_get_array_index_len(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
virtual uint32_t mesh_surface_get_format(RID p_mesh, int p_surface) const=0;
virtual VS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const=0;
virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const=0;
- virtual Vector<DVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
+ virtual Vector<PoolVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
virtual Vector<AABB> mesh_surface_get_skeleton_aabb(RID p_mesh, int p_surface) const=0;
virtual void mesh_remove_surface(RID p_mesh,int p_index)=0;
@@ -388,7 +388,7 @@ public:
/* ROOM API */
virtual RID room_create()=0;
- virtual void room_add_bounds(RID p_room, const DVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
+ virtual void room_add_bounds(RID p_room, const PoolVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
virtual void room_clear_bounds(RID p_room)=0;
/* PORTAL API */
@@ -421,8 +421,8 @@ public:
virtual void gi_probe_set_to_cell_xform(RID p_probe,const Transform& p_xform)=0;
virtual Transform gi_probe_get_to_cell_xform(RID p_probe) const=0;
- virtual void gi_probe_set_dynamic_data(RID p_probe,const DVector<int>& p_data)=0;
- virtual DVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
+ virtual void gi_probe_set_dynamic_data(RID p_probe,const PoolVector<int>& p_data)=0;
+ virtual PoolVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
virtual void gi_probe_set_dynamic_range(RID p_probe,int p_range)=0;
virtual int gi_probe_get_dynamic_range(RID p_probe) const=0;
@@ -467,7 +467,7 @@ public:
virtual void particles_set_emission_shape(RID p_particles,VS::ParticlesEmissionShape p_shape)=0;
virtual void particles_set_emission_sphere_radius(RID p_particles,float p_radius)=0;
virtual void particles_set_emission_box_extents(RID p_particles,const Vector3& p_extents)=0;
- virtual void particles_set_emission_points(RID p_particles,const DVector<Vector3>& p_points)=0;
+ virtual void particles_set_emission_points(RID p_particles,const PoolVector<Vector3>& p_points)=0;
virtual void particles_set_draw_order(RID p_particles,VS::ParticlesDrawOrder p_order)=0;
@@ -506,7 +506,7 @@ public:
/* LIGHT SHADOW MAPPING */
virtual RID canvas_light_occluder_create()=0;
- virtual void canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines)=0;
+ virtual void canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines)=0;
virtual VS::InstanceType get_base_type(RID p_rid) const=0;
@@ -1275,8 +1275,8 @@ public:
virtual void particles_set_emission_base_velocity(RID p_particles, const Vector3& p_base_velocity)=0;
virtual Vector3 particles_get_emission_base_velocity(RID p_particles) const=0;
- virtual void particles_set_emission_points(RID p_particles, const DVector<Vector3>& p_points)=0;
- virtual DVector<Vector3> particles_get_emission_points(RID p_particles) const=0;
+ virtual void particles_set_emission_points(RID p_particles, const PoolVector<Vector3>& p_points)=0;
+ virtual PoolVector<Vector3> particles_get_emission_points(RID p_particles) const=0;
virtual void particles_set_gravity_normal(RID p_particles, const Vector3& p_normal)=0;
virtual Vector3 particles_get_gravity_normal(RID p_particles) const=0;
@@ -1876,7 +1876,7 @@ public:
/* LIGHT SHADOW MAPPING */
virtual RID canvas_light_occluder_create()=0;
- virtual void canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines)=0;
+ virtual void canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines)=0;
virtual RID canvas_light_shadow_buffer_create(int p_width)=0;
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp
index f70ce46a3..8e6345960 100644
--- a/servers/visual/visual_server_canvas.cpp
+++ b/servers/visual/visual_server_canvas.cpp
@@ -1058,20 +1058,20 @@ RID VisualServerCanvas::canvas_occluder_polygon_create() {
return canvas_light_occluder_polygon_owner.make_rid(occluder_poly);
}
-void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const DVector<Vector2>& p_shape,bool p_closed) {
+void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape,bool p_closed) {
if (p_shape.size()<3) {
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,p_shape);
return;
}
- DVector<Vector2> lines;
+ PoolVector<Vector2> lines;
int lc = p_shape.size()*2;
lines.resize(lc-(p_closed?0:2));
{
- DVector<Vector2>::Write w = lines.write();
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Write w = lines.write();
+ PoolVector<Vector2>::Read r = p_shape.read();
int max=lc/2;
if (!p_closed) {
@@ -1089,7 +1089,7 @@ void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,lines);
}
-void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape) {
+void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape) {
LightOccluderPolygon * occluder_poly = canvas_light_occluder_polygon_owner.get(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
@@ -1098,7 +1098,7 @@ void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occlud
int lc = p_shape.size();
occluder_poly->aabb=Rect2();
{
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Read r = p_shape.read();
for(int i=0;i<lc;i++) {
if (i==0)
occluder_poly->aabb.pos=r[i];
diff --git a/servers/visual/visual_server_canvas.h b/servers/visual/visual_server_canvas.h
index e1edc47f9..4a5091e75 100644
--- a/servers/visual/visual_server_canvas.h
+++ b/servers/visual/visual_server_canvas.h
@@ -201,8 +201,8 @@ public:
void canvas_light_occluder_set_light_mask(RID p_occluder,int p_mask);
RID canvas_occluder_polygon_create();
- void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const DVector<Vector2>& p_shape,bool p_closed);
- void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape);
+ void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape,bool p_closed);
+ void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape);
void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon,VS::CanvasOccluderPolygonCullMode p_mode);
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp
index 58cfab3b9..3262479c4 100644
--- a/servers/visual/visual_server_raster.cpp
+++ b/servers/visual/visual_server_raster.cpp
@@ -819,13 +819,13 @@ Vector3 VisualServerRaster::particles_get_emission_base_velocity(RID p_particles
return rasterizer->particles_get_emission_base_velocity(p_particles);
}
-void VisualServerRaster::particles_set_emission_points(RID p_particles, const DVector<Vector3>& p_points) {
+void VisualServerRaster::particles_set_emission_points(RID p_particles, const PoolVector<Vector3>& p_points) {
VS_CHANGED;
rasterizer->particles_set_emission_points(p_particles,p_points);
}
-DVector<Vector3> VisualServerRaster::particles_get_emission_points(RID p_particles) const {
+PoolVector<Vector3> VisualServerRaster::particles_get_emission_points(RID p_particles) const {
return rasterizer->particles_get_emission_points(p_particles);
}
@@ -1279,7 +1279,7 @@ float VisualServerRaster::baked_light_get_lightmap_multiplier(RID p_baked_light)
}
-void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<uint8_t> p_octree){
+void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const PoolVector<uint8_t> p_octree){
VS_CHANGED;
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
@@ -1301,7 +1301,7 @@ void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<
bool has_light_tex=false;
{
- DVector<uint8_t>::Read r=p_octree.read();
+ PoolVector<uint8_t>::Read r=p_octree.read();
tex_w = decode_uint32(&r[0]);
tex_h = decode_uint32(&r[4]);
print_line("TEX W: "+itos(tex_w)+" TEX H:"+itos(tex_h)+" LEN: "+itos(p_octree.size()));
@@ -1386,22 +1386,22 @@ void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<
}
-DVector<uint8_t> VisualServerRaster::baked_light_get_octree(RID p_baked_light) const{
+PoolVector<uint8_t> VisualServerRaster::baked_light_get_octree(RID p_baked_light) const{
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<uint8_t>());
if (rasterizer->is_texture(baked_light->data.octree_texture)) {
Image img = rasterizer->texture_get_data(baked_light->data.octree_texture);
return img.get_data();
} else {
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
}
-void VisualServerRaster::baked_light_set_light(RID p_baked_light,const DVector<uint8_t> p_light) {
+void VisualServerRaster::baked_light_set_light(RID p_baked_light,const PoolVector<uint8_t> p_light) {
VS_CHANGED;
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
@@ -1425,23 +1425,23 @@ void VisualServerRaster::baked_light_set_light(RID p_baked_light,const DVector<u
}
-DVector<uint8_t> VisualServerRaster::baked_light_get_light(RID p_baked_light) const{
+PoolVector<uint8_t> VisualServerRaster::baked_light_get_light(RID p_baked_light) const{
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<uint8_t>());
if (rasterizer->is_texture(baked_light->data.light_texture)) {
Image img = rasterizer->texture_get_data(baked_light->data.light_texture);
return img.get_data();
} else {
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
}
-void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const DVector<int> &p_sampler) {
+void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const PoolVector<int> &p_sampler) {
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
ERR_FAIL_COND(!baked_light);
@@ -1452,10 +1452,10 @@ void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const
}
-DVector<int> VisualServerRaster::baked_light_get_sampler_octree(RID p_baked_light) const {
+PoolVector<int> VisualServerRaster::baked_light_get_sampler_octree(RID p_baked_light) const {
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<int>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<int>());
return baked_light->sampler;
@@ -4466,20 +4466,20 @@ RID VisualServerRaster::canvas_occluder_polygon_create() {
}
-void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const DVector<Vector2>& p_shape, bool p_close){
+void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const PoolVector<Vector2>& p_shape, bool p_close){
if (p_shape.size()<3) {
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,p_shape);
return;
}
- DVector<Vector2> lines;
+ PoolVector<Vector2> lines;
int lc = p_shape.size()*2;
lines.resize(lc-(p_close?0:2));
{
- DVector<Vector2>::Write w = lines.write();
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Write w = lines.write();
+ PoolVector<Vector2>::Read r = p_shape.read();
int max=lc/2;
if (!p_close) {
@@ -4498,7 +4498,7 @@ void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,lines);
}
-void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape) {
+void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape) {
CanvasLightOccluderPolygon * occluder_poly = canvas_light_occluder_polygon_owner.get(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
@@ -4507,7 +4507,7 @@ void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occlud
int lc = p_shape.size();
occluder_poly->aabb=Rect2();
{
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Read r = p_shape.read();
for(int i=0;i<lc;i++) {
if (i==0)
occluder_poly->aabb.pos=r[i];
@@ -6338,7 +6338,7 @@ void VisualServerRaster::_process_sampled_light(const Transform& p_camera,Instan
AABB sample_aabb= bl->data.transform.affine_inverse().xform(AABB(Vector3(-r,-r,-r)+p_sampled_light->data.transform.origin,Vector3(r*2,r*2,r*2)));
//ok got octree local AABB
- DVector<int>::Read rp = bl->baked_light_info->baked_light->sampler.read();
+ PoolVector<int>::Read rp = bl->baked_light_info->baked_light->sampler.read();
const int *rptr = rp.ptr();
int first = rptr[1];
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h
index 0f75d7ab8..5fb71aa0f 100644
--- a/servers/visual/visual_server_raster.h
+++ b/servers/visual/visual_server_raster.h
@@ -103,7 +103,7 @@ class VisualServerRaster : public VisualServer {
struct BakedLight {
Rasterizer::BakedLightData data;
- DVector<int> sampler;
+ PoolVector<int> sampler;
AABB octree_aabb;
Size2i octree_tex_size;
Size2i light_tex_size;
@@ -671,7 +671,7 @@ public:
BIND0R(RID,mesh_create)
- BIND10(mesh_add_surface,RID,uint32_t,PrimitiveType,const DVector<uint8_t>&,int ,const DVector<uint8_t>& ,int ,const AABB&,const Vector<DVector<uint8_t> >&,const Vector<AABB>& )
+ BIND10(mesh_add_surface,RID,uint32_t,PrimitiveType,const PoolVector<uint8_t>&,int ,const PoolVector<uint8_t>& ,int ,const AABB&,const Vector<PoolVector<uint8_t> >&,const Vector<AABB>& )
BIND2(mesh_set_morph_target_count,RID,int)
BIND1RC(int,mesh_get_morph_target_count,RID)
@@ -686,14 +686,14 @@ public:
BIND2RC(int,mesh_surface_get_array_len,RID,int)
BIND2RC(int,mesh_surface_get_array_index_len,RID,int)
- BIND2RC(DVector<uint8_t>,mesh_surface_get_array,RID,int)
- BIND2RC(DVector<uint8_t>,mesh_surface_get_index_array,RID, int)
+ BIND2RC(PoolVector<uint8_t>,mesh_surface_get_array,RID,int)
+ BIND2RC(PoolVector<uint8_t>,mesh_surface_get_index_array,RID, int)
BIND2RC(uint32_t,mesh_surface_get_format,RID,int)
BIND2RC(PrimitiveType,mesh_surface_get_primitive_type,RID,int)
BIND2RC(AABB,mesh_surface_get_aabb,RID,int)
- BIND2RC(Vector<DVector<uint8_t> >,mesh_surface_get_blend_shapes,RID,int)
+ BIND2RC(Vector<PoolVector<uint8_t> >,mesh_surface_get_blend_shapes,RID,int)
BIND2RC(Vector<AABB>,mesh_surface_get_skeleton_aabb,RID,int)
BIND2(mesh_remove_surface,RID,int)
@@ -791,7 +791,7 @@ public:
/* ROOM API */
BIND0R(RID,room_create)
- BIND4(room_add_bounds,RID, const DVector<Vector2>& ,float ,const Transform& )
+ BIND4(room_add_bounds,RID, const PoolVector<Vector2>& ,float ,const Transform& )
BIND1(room_clear_bounds,RID)
/* PORTAL API */
@@ -830,8 +830,8 @@ public:
BIND2(gi_probe_set_compress,RID,bool)
BIND1RC(bool,gi_probe_is_compressed,RID)
- BIND2(gi_probe_set_dynamic_data,RID,const DVector<int>& )
- BIND1RC( DVector<int>,gi_probe_get_dynamic_data,RID)
+ BIND2(gi_probe_set_dynamic_data,RID,const PoolVector<int>& )
+ BIND1RC( PoolVector<int>,gi_probe_get_dynamic_data,RID)
/* PARTICLES */
@@ -851,7 +851,7 @@ public:
BIND2(particles_set_emission_shape,RID,VS::ParticlesEmissionShape )
BIND2(particles_set_emission_sphere_radius,RID,float )
BIND2(particles_set_emission_box_extents,RID,const Vector3& )
- BIND2(particles_set_emission_points,RID,const DVector<Vector3>& )
+ BIND2(particles_set_emission_points,RID,const PoolVector<Vector3>& )
BIND2(particles_set_draw_order,RID,VS::ParticlesDrawOrder )
@@ -1088,8 +1088,8 @@ public:
BIND0R(RID,canvas_occluder_polygon_create)
- BIND3(canvas_occluder_polygon_set_shape,RID,const DVector<Vector2>& ,bool)
- BIND2(canvas_occluder_polygon_set_shape_as_lines,RID ,const DVector<Vector2>&)
+ BIND3(canvas_occluder_polygon_set_shape,RID,const PoolVector<Vector2>& ,bool)
+ BIND2(canvas_occluder_polygon_set_shape_as_lines,RID ,const PoolVector<Vector2>&)
BIND2(canvas_occluder_polygon_set_cull_mode,RID,CanvasOccluderPolygonCullMode)
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp
index 816d42303..0f789d969 100644
--- a/servers/visual/visual_server_scene.cpp
+++ b/servers/visual/visual_server_scene.cpp
@@ -2423,14 +2423,14 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
if (probe->dynamic.light_data.size()==0)
return;
//using dynamic data
- DVector<int>::Read r=probe->dynamic.light_data.read();
+ PoolVector<int>::Read r=probe->dynamic.light_data.read();
const GIProbeDataHeader *header = (GIProbeDataHeader *)r.ptr();
probe->dynamic.local_data.resize(header->cell_count);
int cell_count = probe->dynamic.local_data.size();
- DVector<InstanceGIProbeData::LocalData>::Write ldw = probe->dynamic.local_data.write();
+ PoolVector<InstanceGIProbeData::LocalData>::Write ldw = probe->dynamic.local_data.write();
const GIProbeDataCell *cells = (GIProbeDataCell*)&r[16];
probe->dynamic.level_cell_lists.resize(header->cell_subdiv);
@@ -2466,13 +2466,13 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
uint32_t z = header->depth >> i;
//create and clear mipmap
- DVector<uint8_t> mipmap;
+ PoolVector<uint8_t> mipmap;
int size = x*y*z*4;
size/=size_divisor;
mipmap.resize(size);
- DVector<uint8_t>::Write w = mipmap.write();
+ PoolVector<uint8_t>::Write w = mipmap.write();
zeromem(w.ptr(),size);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
probe->dynamic.mipmaps_3d.push_back(mipmap);
@@ -2547,7 +2547,7 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
for(int i=0;i<mipmap_count;i++) {
print_line("S3TC level: "+itos(i)+" blocks: "+itos(comp_blocks[i].size()));
probe->dynamic.mipmaps_s3tc[i].resize(comp_blocks[i].size());
- DVector<InstanceGIProbeData::CompBlockS3TC>::Write w = probe->dynamic.mipmaps_s3tc[i].write();
+ PoolVector<InstanceGIProbeData::CompBlockS3TC>::Write w = probe->dynamic.mipmaps_s3tc[i].write();
int block_idx=0;
for (Map<uint32_t,InstanceGIProbeData::CompBlockS3TC>::Element *E=comp_blocks[i].front();E;E=E->next()) {
@@ -2979,7 +2979,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
InstanceGIProbeData * probe_data = static_cast<InstanceGIProbeData*>(p_gi_probe->base_data);
- DVector<int>::Read r=probe_data->dynamic.light_data.read();
+ PoolVector<int>::Read r=probe_data->dynamic.light_data.read();
const GIProbeDataHeader *header = (const GIProbeDataHeader *)r.ptr();
const GIProbeDataCell *cells = (const GIProbeDataCell*)&r[16];
@@ -2987,7 +2987,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
int leaf_count = probe_data->dynamic.level_cell_lists[ header->cell_subdiv -1 ].size();
const uint32_t *leaves = probe_data->dynamic.level_cell_lists[ header->cell_subdiv -1 ].ptr();
- DVector<InstanceGIProbeData::LocalData>::Write ldw = probe_data->dynamic.local_data.write();
+ PoolVector<InstanceGIProbeData::LocalData>::Write ldw = probe_data->dynamic.local_data.write();
InstanceGIProbeData::LocalData *local_data = ldw.ptr();
@@ -3039,7 +3039,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
int level_cell_count = probe_data->dynamic.level_cell_lists[ i ].size();
const uint32_t *level_cells = probe_data->dynamic.level_cell_lists[ i ].ptr();
- DVector<uint8_t>::Write lw = probe_data->dynamic.mipmaps_3d[stage].write();
+ PoolVector<uint8_t>::Write lw = probe_data->dynamic.mipmaps_3d[stage].write();
uint8_t *mipmapw = lw.ptr();
uint32_t sizes[3]={header->width>>stage,header->height>>stage,header->depth>>stage};
@@ -3071,9 +3071,9 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
for(int mmi=0;mmi<mipmap_count;mmi++) {
- DVector<uint8_t>::Write mmw = probe_data->dynamic.mipmaps_3d[mmi].write();
+ PoolVector<uint8_t>::Write mmw = probe_data->dynamic.mipmaps_3d[mmi].write();
int block_count = probe_data->dynamic.mipmaps_s3tc[mmi].size();
- DVector<InstanceGIProbeData::CompBlockS3TC>::Read mmr = probe_data->dynamic.mipmaps_s3tc[mmi].read();
+ PoolVector<InstanceGIProbeData::CompBlockS3TC>::Read mmr = probe_data->dynamic.mipmaps_s3tc[mmi].read();
for(int i=0;i<block_count;i++) {
@@ -3368,7 +3368,7 @@ void VisualServerScene::render_probes() {
for(int i=0;i<(int)probe->dynamic.mipmaps_3d.size();i++) {
int mmsize = probe->dynamic.mipmaps_3d[i].size();
- DVector<uint8_t>::Read r = probe->dynamic.mipmaps_3d[i].read();
+ PoolVector<uint8_t>::Read r = probe->dynamic.mipmaps_3d[i].read();
VSG::storage->gi_probe_dynamic_data_update(probe->dynamic.probe_data,0,probe->dynamic.grid_size[2]>>i,i,r.ptr());
}
diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h
index 300db1b41..ac272467b 100644
--- a/servers/visual/visual_server_scene.h
+++ b/servers/visual/visual_server_scene.h
@@ -45,7 +45,7 @@ public:
struct BakedLight {
Rasterizer::BakedLightData data;
- DVector<int> sampler;
+ PoolVector<int> sampler;
AABB octree_aabb;
Size2i octree_tex_size;
Size2i light_tex_size;
@@ -433,16 +433,16 @@ public:
Map<RID,LightCache> light_cache;
Map<RID,LightCache> light_cache_changes;
- DVector<int> light_data;
- DVector<LocalData> local_data;
+ PoolVector<int> light_data;
+ PoolVector<LocalData> local_data;
Vector<Vector<uint32_t> > level_cell_lists;
RID probe_data;
bool enabled;
int bake_dynamic_range;
RasterizerStorage::GIProbeCompression compression;
- Vector< DVector<uint8_t> > mipmaps_3d;
- Vector< DVector<CompBlockS3TC> > mipmaps_s3tc; //for s3tc
+ Vector< PoolVector<uint8_t> > mipmaps_3d;
+ Vector< PoolVector<CompBlockS3TC> > mipmaps_s3tc; //for s3tc
int updating_stage;