INLINE void OGL14RendererDevice::UploadData(void *userData) { RendererPacket *packet = static_cast<RendererPacket *>(userData); ITexture *texture = packet->pTexture; GLuint *t = static_cast<GLuint *>(texture->GetTextureName()); GLuint tex = (GLuint)t; sVertex *data = static_cast<sVertex *>(packet->pVertexData); glPushMatrix(); glLoadIdentity(); this->SetBlendingOperation(packet->nBlendMode, packet->iColor.pixel); glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); /* eTextureFilter min = texture->GetFilter(Seed::TextureFilterTypeMin); eTextureFilter mag = texture->GetFilter(Seed::TextureFilterTypeMag); if (min == Seed::TextureFilterLinear) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); else if (min == Seed::TextureFilterNearest) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); if (mag == Seed::TextureFilterLinear) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); else if (mag == Seed::TextureFilterNearest) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); */ //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glBegin(this->GetOpenGLMeshType(packet->nMeshType)); for (u32 i = 0; i < packet->iSize; i++) { glTexCoord2f(data[i].cCoords.x, data[i].cCoords.y); glVertex3f(data[i].cVertex.x, data[i].cVertex.y, data[i].cVertex.z); } glEnd(); glPopMatrix(); }
INLINE void OGLES1RendererDevice::UploadData(void *userData) { RendererPacket *packet = static_cast<RendererPacket *>(userData); ITexture *texture = packet->pTexture; GLuint *t = static_cast<GLuint *>(texture->GetTextureName()); GLuint tex = (GLuint)t; sVertex *data = static_cast<sVertex *>(packet->pVertexData); this->SetBlendingOperation(packet->nBlendMode, packet->iColor.pixel); sVertex v1 = data[0]; sVertex v2 = data[1]; sVertex v3 = data[2]; sVertex v4 = data[3]; glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); eTextureFilter min = texture->GetFilter(Seed::TextureFilterTypeMin); eTextureFilter mag = texture->GetFilter(Seed::TextureFilterTypeMag); if (min == Seed::TextureFilterLinear) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); else if (min == Seed::TextureFilterNearest) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); if (mag == Seed::TextureFilterLinear) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); else if (mag == Seed::TextureFilterNearest) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glVertexPointer(3, GL_FLOAT, sizeof(sVertex), &data[0].cVertex); glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(sVertex), &data[0].iColor); glTexCoordPointer(2, GL_FLOAT, sizeof(sVertex), &data[0].cCoords); glDrawArrays(GL_TRIANGLE_STRIP, 0, packet->iSize); }