Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Chunk::renderCubes()
- {
- GX_SetArray(GX_VA_POS, blockPositionVertices, 3 * sizeof(float));
- GX_SetArray(GX_VA_TEX0, blockTexCoordVertices, 2 * sizeof(float));
- GX_SetCurrentMtx(GX_PNMTX0);
- float x, y, z;
- std::vector <struct cubeFaceData_t>::iterator it;
- for(it = cubeFaceDataList.begin(); it != cubeFaceDataList.end(); ++it) {
- x = indexX * CHUNK_SIZE + it->cubePosIndex.x * BLOCK_SIZE;
- y = indexY * CHUNK_SIZE + it->cubePosIndex.y * BLOCK_SIZE;
- z = indexZ * CHUNK_SIZE + it->cubePosIndex.z * BLOCK_SIZE;
- MatrixStack.Push();
- MatrixStack.Translate(x, y, z);
- MatrixStack.Set(GX_PNMTX0);
- TextureManager.setBlockTextureSide(it->cubeID);
- if(it->face & CUBE_FACE_FRONT) {
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(0);
- GX_TexCoord1x8(0);
- GX_Position1x8(1);
- GX_TexCoord1x8(1);
- GX_Position1x8(2);
- GX_TexCoord1x8(2);
- GX_Position1x8(3);
- GX_TexCoord1x8(3);
- GX_End();
- }
- if(it->face & CUBE_FACE_RIGHT) {
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(2);
- GX_TexCoord1x8(0);
- GX_Position1x8(3);
- GX_TexCoord1x8(1);
- GX_Position1x8(4);
- GX_TexCoord1x8(2);
- GX_Position1x8(5);
- GX_TexCoord1x8(3);
- GX_End();
- }
- if(it->face & CUBE_FACE_BACK) {
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(4);
- GX_TexCoord1x8(0);
- GX_Position1x8(5);
- GX_TexCoord1x8(1);
- GX_Position1x8(6);
- GX_TexCoord1x8(2);
- GX_Position1x8(7);
- GX_TexCoord1x8(3);
- GX_End();
- }
- if(it->face & CUBE_FACE_LEFT) {
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(6);
- GX_TexCoord1x8(0);
- GX_Position1x8(7);
- GX_TexCoord1x8(1);
- GX_Position1x8(0);
- GX_TexCoord1x8(2);
- GX_Position1x8(1);
- GX_TexCoord1x8(3);
- GX_End();
- }
- if(it->face & CUBE_FACE_TOP) {
- TextureManager.setBlockTextureTop(it->cubeID);
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(1);
- GX_TexCoord1x8(0);
- GX_Position1x8(7);
- GX_TexCoord1x8(1);
- GX_Position1x8(3);
- GX_TexCoord1x8(2);
- GX_Position1x8(5);
- GX_TexCoord1x8(3);
- GX_End();
- }
- if(it->face & CUBE_FACE_BOTTOM) {
- TextureManager.setBlockTextureBottom(it->cubeID);
- GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
- GX_Position1x8(6);
- GX_TexCoord1x8(0);
- GX_Position1x8(0);
- GX_TexCoord1x8(1);
- GX_Position1x8(4);
- GX_TexCoord1x8(2);
- GX_Position1x8(2);
- GX_TexCoord1x8(3);
- GX_End();
- }
- GX_InvalidateTexAll();
- MatrixStack.Pop();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement