Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Conty Estevez <conty@yafray.org>2004-06-17 15:24:30 +0400
committerAlejandro Conty Estevez <conty@yafray.org>2004-06-17 15:24:30 +0400
commitcfbce399aa8129c8fb49984df64bd8a096a34368 (patch)
treee77af73d05e2b23cc4939abcf6da593af49122d3 /source/blender/yafray
parenta78ad46c0dec84c1504e0be38d8b8a798f2f024d (diff)
These are changes necessary for building with msvc in a near future.
Just making sure memory is always allocated and freed in the same binary object, which seems to be mandatory on msvc if you don't have the comercial version. If you are using this code you need to syncronize with yafray cvs also, or it won't work. Binaries for os x are updated in the link I gave in my last commit.
Diffstat (limited to 'source/blender/yafray')
-rw-r--r--source/blender/yafray/intern/export_Plugin.cpp79
-rw-r--r--source/blender/yafray/intern/export_Plugin.h12
-rw-r--r--source/blender/yafray/intern/yafexternal.h4
3 files changed, 46 insertions, 49 deletions
diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp
index 2baacc1a5c0..08919292e57 100644
--- a/source/blender/yafray/intern/export_Plugin.cpp
+++ b/source/blender/yafray/intern/export_Plugin.cpp
@@ -688,50 +688,50 @@ void yafrayPluginRender_t::writeMaterialsAndModulators()
}
}
-void yafrayPluginRender_t::genUVcoords(vector<yafray::GFLOAT> *uvcoords,VlakRen *vlr,TFace* uvc)
+void yafrayPluginRender_t::genUVcoords(vector<yafray::GFLOAT> &uvcoords,VlakRen *vlr,TFace* uvc)
{
if (uvc)
{
// use correct uv coords for this triangle
if (vlr->flag & R_FACE_SPLIT)
{
- uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]);
- uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]);
- uvcoords->push_back(uvc->uv[3][0]);uvcoords->push_back(1-uvc->uv[3][1]);
+ uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]);
+ uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]);
+ uvcoords.push_back(uvc->uv[3][0]);uvcoords.push_back(1-uvc->uv[3][1]);
}
else
{
- uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]);
- uvcoords->push_back(uvc->uv[1][0]);uvcoords->push_back(1-uvc->uv[1][1]);
- uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]);
+ uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]);
+ uvcoords.push_back(uvc->uv[1][0]);uvcoords.push_back(1-uvc->uv[1][1]);
+ uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]);
}
}
else
{
- uvcoords->push_back(0);uvcoords->push_back(0);
- uvcoords->push_back(0);uvcoords->push_back(0);
- uvcoords->push_back(0);uvcoords->push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
}
}
-void yafrayPluginRender_t::genCompleUVcoords(vector<yafray::GFLOAT> *uvcoords,/*VlakRen *vlr,*/TFace* uvc)
+void yafrayPluginRender_t::genCompleUVcoords(vector<yafray::GFLOAT> &uvcoords,/*VlakRen *vlr,*/TFace* uvc)
{
if (uvc)
{
// use correct uv coords for this triangle
- uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]);
- uvcoords->push_back(uvc->uv[3][0]);uvcoords->push_back(1-uvc->uv[3][1]);
- uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]);
+ uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]);
+ uvcoords.push_back(uvc->uv[3][0]);uvcoords.push_back(1-uvc->uv[3][1]);
+ uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]);
}
else
{
- uvcoords->push_back(0);uvcoords->push_back(0);
- uvcoords->push_back(0);uvcoords->push_back(0);
- uvcoords->push_back(0);uvcoords->push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
+ uvcoords.push_back(0);uvcoords.push_back(0);
}
}
-void yafrayPluginRender_t::genVcol(vector<yafray::CFLOAT> *vcol,VlakRen *vlr,
+void yafrayPluginRender_t::genVcol(vector<yafray::CFLOAT> &vcol,VlakRen *vlr,
int p1,int p2,int p3,bool EXPORT_VCOL)
{
if ((EXPORT_VCOL) && (vlr->vcol))
@@ -741,26 +741,26 @@ void yafrayPluginRender_t::genVcol(vector<yafray::CFLOAT> *vcol,VlakRen *vlr,
vr = ((vlr->vcol[p1] >> 24) & 255)/255.0;
vg = ((vlr->vcol[p1] >> 16) & 255)/255.0;
vb = ((vlr->vcol[p1] >> 8) & 255)/255.0;
- vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb);
+ vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb);
vr = ((vlr->vcol[p2] >> 24) & 255)/255.0;
vg = ((vlr->vcol[p2] >> 16) & 255)/255.0;
vb = ((vlr->vcol[p2] >> 8) & 255)/255.0;
- vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb);
+ vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb);
vr = ((vlr->vcol[p3] >> 24) & 255)/255.0;
vg = ((vlr->vcol[p3] >> 16) & 255)/255.0;
vb = ((vlr->vcol[p3] >> 8) & 255)/255.0;
- vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb);
+ vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb);
}
else
{
- vcol->push_back(0);vcol->push_back(0);vcol->push_back(0);
- vcol->push_back(0);vcol->push_back(0);vcol->push_back(0);
- vcol->push_back(0);vcol->push_back(0);vcol->push_back(0);
+ vcol.push_back(0);vcol.push_back(0);vcol.push_back(0);
+ vcol.push_back(0);vcol.push_back(0);vcol.push_back(0);
+ vcol.push_back(0);vcol.push_back(0);vcol.push_back(0);
}
}
void yafrayPluginRender_t::genFace(vector<int> &faces,vector<string> &shaders,vector<int> &faceshader,
- vector<yafray::GFLOAT> *uvcoords,vector<yafray::CFLOAT> *vcol,
+ vector<yafray::GFLOAT> &uvcoords,vector<yafray::CFLOAT> &vcol,
map<VertRen*, int> &vert_idx,VlakRen *vlr,
bool has_orco,bool has_uv,bool has_vcol)
{
@@ -801,7 +801,7 @@ void yafrayPluginRender_t::genFace(vector<int> &faces,vector<string> &shaders,ve
}
void yafrayPluginRender_t::genCompleFace(vector<int> &faces,/*vector<string> &shaders,*/vector<int> &faceshader,
- vector<yafray::GFLOAT> *uvcoords,vector<yafray::CFLOAT> *vcol,
+ vector<yafray::GFLOAT> &uvcoords,vector<yafray::CFLOAT> &vcol,
map<VertRen*, int> &vert_idx,VlakRen *vlr,
bool has_orco,bool has_uv,bool has_vcol)
{
@@ -824,7 +824,7 @@ void yafrayPluginRender_t::genCompleFace(vector<int> &faces,/*vector<string> &sh
if(has_vcol) genVcol(vcol,vlr,2,3,0,EXPORT_VCOL);
}
-void yafrayPluginRender_t::genVertices(vector<yafray::point3d_t> *verts,int &vidx,
+void yafrayPluginRender_t::genVertices(vector<yafray::point3d_t> &verts,int &vidx,
map<VertRen*, int> &vert_idx,VlakRen* vlr,bool has_orco)
{
VertRen* ver;
@@ -832,33 +832,33 @@ void yafrayPluginRender_t::genVertices(vector<yafray::point3d_t> *verts,int &vid
{
vert_idx[vlr->v1] = vidx++;
ver = vlr->v1;
- verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
+ verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
if (has_orco)
- verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
+ verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
}
if (vert_idx.find(vlr->v2)==vert_idx.end())
{
vert_idx[vlr->v2] = vidx++;
ver = vlr->v2;
- verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
+ verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
if (has_orco)
- verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
+ verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
}
if (vert_idx.find(vlr->v3)==vert_idx.end())
{
vert_idx[vlr->v3] = vidx++;
ver = vlr->v3;
- verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
+ verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
if (has_orco)
- verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
+ verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
}
if ((vlr->v4) && (vert_idx.find(vlr->v4)==vert_idx.end()))
{
vert_idx[vlr->v4] = vidx++;
ver = vlr->v4;
- verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
+ verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2]));
if (has_orco)
- verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
+ verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2]));
}
}
@@ -900,9 +900,8 @@ void yafrayPluginRender_t::writeObject(Object* obj, const vector<VlakRen*> &VLR_
if(fmat==NULL) continue;
if((fmat->mode & (MA_VERTEXCOL|MA_VERTEXCOLP))!=0) {has_vcol=true;break;};
}
- vector<yafray::point3d_t> *verts=new vector<yafray::point3d_t>;
- vector<yafray::CFLOAT> *vcol=NULL;
- if(has_vcol) vcol=new vector<yafray::CFLOAT>;
+ vector<yafray::point3d_t> verts;
+ vector<yafray::CFLOAT> vcol;
// now all vertices
map<VertRen*, int> vert_idx; // for removing duplicate verts and creating an index list
int vidx = 0; // vertex index counter
@@ -918,9 +917,7 @@ void yafrayPluginRender_t::writeObject(Object* obj, const vector<VlakRen*> &VLR_
vector<int> faces;
vector<string> shaders;
vector<int> faceshader;
- vector<yafray::GFLOAT> *uvcoords=NULL;
- if(has_uv)
- uvcoords=new vector<yafray::GFLOAT>;
+ vector<yafray::GFLOAT> uvcoords;
for (vector<VlakRen*>::const_iterator fci2=VLR_list.begin();
fci2!=VLR_list.end();++fci2)
{
diff --git a/source/blender/yafray/intern/export_Plugin.h b/source/blender/yafray/intern/export_Plugin.h
index 1defad65922..775156a7e71 100644
--- a/source/blender/yafray/intern/export_Plugin.h
+++ b/source/blender/yafray/intern/export_Plugin.h
@@ -36,19 +36,19 @@ class yafrayPluginRender_t : public yafrayRender_t
virtual bool initExport();
virtual bool finishExport();
- void genUVcoords(std::vector<yafray::GFLOAT> *uvcoords,VlakRen *vlr,TFace* uvc);
- void genCompleUVcoords(std::vector<yafray::GFLOAT> *uvcoords,/*VlakRen *vlr,*/TFace* uvc);
- void genVcol(std::vector<yafray::CFLOAT> *vcol,VlakRen *vlr,
+ void genUVcoords(std::vector<yafray::GFLOAT> &uvcoords,VlakRen *vlr,TFace* uvc);
+ void genCompleUVcoords(std::vector<yafray::GFLOAT> &uvcoords,/*VlakRen *vlr,*/TFace* uvc);
+ void genVcol(std::vector<yafray::CFLOAT> &vcol,VlakRen *vlr,
int p1,int p2,int p3,bool EXPORT_VCOL);
void genFace(std::vector<int> &faces,std::vector<std::string> &shaders,std::vector<int> &faceshader,
- std::vector<yafray::GFLOAT> *uvcoords,std::vector<yafray::CFLOAT> *vcol,
+ std::vector<yafray::GFLOAT> &uvcoords,std::vector<yafray::CFLOAT> &vcol,
std::map<VertRen*, int> &vert_idx,VlakRen *vlr,
bool has_orco,bool has_uv,bool has_vcol);
void genCompleFace(std::vector<int> &faces,/*std::vector<std::string> &shaders,*/std::vector<int> &faceshader,
- std::vector<yafray::GFLOAT> *uvcoords,std::vector<yafray::CFLOAT> *vcol,
+ std::vector<yafray::GFLOAT> &uvcoords,std::vector<yafray::CFLOAT> &vcol,
std::map<VertRen*, int> &vert_idx,VlakRen *vlr,
bool has_orco,bool has_uv,bool has_vcol);
- void genVertices(std::vector<yafray::point3d_t> *verts,int &vidx,
+ void genVertices(std::vector<yafray::point3d_t> &verts,int &vidx,
std::map<VertRen*, int> &vert_idx,VlakRen* vlr,bool has_orco);
};
diff --git a/source/blender/yafray/intern/yafexternal.h b/source/blender/yafray/intern/yafexternal.h
index 2ff95a13611..2cf1b0a0dd1 100644
--- a/source/blender/yafray/intern/yafexternal.h
+++ b/source/blender/yafray/intern/yafexternal.h
@@ -141,8 +141,8 @@ class yafrayInterface_t : public renderEnvironment_t
virtual void transformPush(float *m)=0;
virtual void transformPop()=0;
virtual void addObject_trimesh(const std::string &name,
- std::vector<point3d_t> *verts, const std::vector<int> &faces,
- std::vector<GFLOAT> *uvcoords, std::vector<CFLOAT> *vcol,
+ std::vector<point3d_t> &verts, const std::vector<int> &faces,
+ std::vector<GFLOAT> &uvcoords, std::vector<CFLOAT> &vcol,
const std::vector<std::string> &shaders,const std::vector<int> &faceshader,
float sm_angle,bool castShadows,bool useR,bool receiveR,bool caus,bool has_orco,
const color_t &caus_rcolor,const color_t &caus_tcolor,float caus_IOR)=0;