示例#1
0
static iTextureData*
_texDataFromPath(dString* filePath, const dDictT<dValue*, dString*>* pvrtcParams) {
	CL_THROW_IF_NIL(filePath);
	
	dobj_ptr<dData> data(dData::alloc()->initWithContentsOfFile(filePath));
	iTextureData* texData = nil;
	
	if (filePath->pathExtension()->isEqual(_ST("pvr"))) texData = iTextureData::alloc()->initWithPVRData(data.get());
	else if (filePath->pathExtension()->isEqual(_ST("tex"))) texData = iTextureData::alloc()->initWithData(data->uncompressedData());
	else if (filePath->pathExtension()->isEqual(_ST("pvrtc"))) texData = iTextureData::alloc()->initWithPVRTCData(data.get(), pvrtcParams);
	else if (filePath->pathExtension()->isEqual(_ST("565"))) texData = iTextureData::alloc()->initWithRGB565Data(data.get());
	else throw new ExAssert;
	
	return texData ? texData->autorelease() : nil;
}
示例#2
0
Renderable::Renderable(const std::vector<vec3> &_V,
                        const std::vector<ivec3> &_T,
                        const std::string& material) : 
	mNumVertices(0), 
	mNumElements(0),
	mNumIndicesPerElement(0),
	mVertexSize(0)
{
	// generate buffers
	glGenBuffers(1, &mVbo);
	glGenBuffers(1, &mIbo);

    // init per vertex normal
    std::vector<vec3> _N;
    computeTriangleMeshNormals(_V,_T,_N);

    // init per vertex color
    std::vector<vec4> _C(0);

    // set per vertex st, binorm, tangent
    std::vector<vec2> _ST(0);
    std::vector<vec3> _binorm(0);
    std::vector<vec3> _tangent(0);

    // init transformation
    mat4 M;
    M.setIdentity();
    initTriangleMesh(_V, _N, _C, _ST, _binorm, _tangent, _T, material, M);
}
示例#3
0
Renderable::Renderable(const std::vector<vec3>& _V,
                       const std::vector<ivec3>& _T,
                       const std::string& material,
                       const mat4& M) :
	mNumVertices(0), 
	mNumElements(0),
	mNumIndicesPerElement(0),
	mVertexSize(0)
{
	// generate buffers
	glGenBuffers(1, &mVbo);
	glGenBuffers(1, &mIbo);

    std::vector<vec3> _N;
    computeTriangleMeshNormals(_V,_T,_N);
    std::vector<vec4> _C(0);
    std::vector<vec2> _ST(0);
    std::vector<vec3> _binorm(0);
    std::vector<vec3> _tangent(0);
    initTriangleMesh(_V, _N, _C, _ST, _binorm, _tangent, _T, material, M);
}
示例#4
0
dString*
dString::string() {
	return _ST("");
}