Skip to content

Commit 090f81b

Browse files
committed
using glprogramstate work ok
1 parent 0b4f36a commit 090f81b

File tree

4 files changed

+9
-8
lines changed

4 files changed

+9
-8
lines changed

cocos/3d/Mesh.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ void Mesh::addMeshPart(PrimitiveType primitiveType, IndexFormat indexformat, vo
315315

316316
void* Mesh::getVertexPointer()
317317
{
318-
return &_renderdata._vertexs;
318+
return &_renderdata._vertexs[0];
319319
}
320320

321321
void Mesh::restore()

cocos/3d/Sprite3D.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,18 +237,19 @@ void Sprite3D::onDraw(const Matrix &transform, bool transformUpdated)
237237
for (int i = 0; i < _model->getMeshPartCount(); i++) {
238238
auto meshPart = _model->getMeshPart(i);
239239
auto programstate = _programState[i];
240-
programstate->setVertexAttribPointer("a_position", 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), _model->getVertexPointer());
241-
programstate->setVertexAttribPointer("a_texCoord", 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), ((char*)_model->getVertexPointer() + 6 * sizeof(float)));
240+
size_t offset = (size_t)_model->getVertexPointer();
241+
programstate->setVertexAttribPointer("a_position", 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)offset);
242+
programstate->setVertexAttribPointer("a_texCoord", 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(offset + 6 * sizeof(float)));
242243

243-
//programstate->setUniformVec4("u_color", Vector4(color.r, color.g, color.b, color.a));
244+
programstate->setUniformVec4("u_color", Vector4(color.r, color.g, color.b, color.a));
244245
if (_textures.at(i))
245246
{
246247
GL::bindTexture2D(_textures.at(i)->getName());
247248
}
248249
programstate->apply(transform);
249250

250-
//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, meshPart->getIndexBuffer());
251-
glDrawElements(meshPart->getPrimitiveType(), meshPart->getIndexCount(), meshPart->getIndexFormat(), _model->getIndexPointer(i));
251+
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, meshPart->getIndexBuffer());
252+
glDrawElements(meshPart->getPrimitiveType(), meshPart->getIndexCount(), meshPart->getIndexFormat(), 0);
252253
}
253254
}
254255

cocos/3d/Textured.es2.frag.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ uniform sampler2D CC_Texture0;
1111

1212
void main(void)
1313
{
14-
gl_FragColor = vec4(1, 0, 0, 1);//texture2D(CC_Texture0, TextureCoordOut);
14+
gl_FragColor = texture2D(CC_Texture0, TextureCoordOut) * u_color;
1515
}
1616
);

tests/cpp-tests/Classes/Sprite3DTest/Sprite3DTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ void Sprite3D1::addNewSpriteWithCoords(Point p)
157157
// auto sprite = Sprite3D::create("sprite3dTest/scene01.obj");
158158

159159
//option 2: load obj and assign the texture
160-
auto sprite = Sprite3D::create("sprite3dTest/boss.obj");
160+
auto sprite = Sprite3D::create("Sprite3DTest/boss.obj");
161161
sprite->setScale(3.f);
162162
sprite->setTexture("Sprite3DTest/boss.png");
163163

0 commit comments

Comments
 (0)