   Anything wrong with this? ( Should display a skybox, but doesn't )
  Here''s the implementation of my skybox class:#include "Skybox.h"Skybox::Skybox( IDirect3DDevice9* device ){Device = device;// Initialize verticesif( !InitVB() ){::MessageBox(0, "Error initializing Skybox vertex buffer.", 0, 0);:ostQuitMessage(0);}// Initialize indicesif( !InitIB() ){::MessageBox(0, "Error initializing Skybox index buffer.", 0, 0);:ostQuitMessage(0);}}Skybox::~Skybox(){d3d::Release(VB);d3d::Release(IB);}bool Skybox::InitVB( ){HRESULT hr = E_FAIL;if ( Device )hr = Device->CreateVertexBuffer( 8 * sizeof(d3d::XYZVertex),D3DUSAGE_WRITEONLY,d3d::XYZVertex::FVF,D3DPOOL_MANAGED,&VB,0 );if ( FAILED(hr) )return false;d3d::XYZVertex* v;VB->Lock( 0, 0, (void**)&v, 0 );//Top verticesv[0] = d3d::XYZVertex(  10.0f,  10.0f,  10.0f );v[1] = d3d::XYZVertex(  10.0f,  10.0f, -10.0f );v[2] = d3d::XYZVertex( -10.0f,  10.0f, -10.0f );v[3] = d3d::XYZVertex( -10.0f,  10.0f,  10.0f );//Bottom verticesv[4] = d3d::XYZVertex(  10.0f, -10.0f,  10.0f );v[5] = d3d::XYZVertex(  10.0f, -10.0f, -10.0f );v[6] = d3d::XYZVertex( -10.0f, -10.0f, -10.0f );v[7] = d3d::XYZVertex( -10.0f, -10.0f,  10.0f );VB->Unlock();return true;}bool Skybox::InitIB(){HRESULT hr = E_FAIL;if ( Device )hr = Device->CreateIndexBuffer(36 * sizeof(WORD),D3DUSAGE_WRITEONLY,D3DFMT_INDEX16,D3DPOOL_MANAGED,&IB,0 );if ( FAILED(hr) )return false;WORD* i;IB->Lock( 0, 0, (void**)&i, 0 );//Top facesi[0] = 0; i[1] = 2; i[2] = 1;i[3] = 0; i[4] = 3; i[5] = 2;//Bottom facesi[6] = 4; i[7]  = 5; i[8]  = 6;i[9] = 6; i[10] = 7; i[11] = 4;//Left facesi[12] = 3; i[13] = 7; i[14] = 6;i[15] = 6; i[16] = 2; i[17] = 3;//Right facesi[18] = 0; i[19] = 5; i[20] = 4;i[21] = 0; i[22] = 1; i[23] = 5;//Front facesi[24] = 3; i[25] = 0; i[26] = 4;i[27] = 4; i[28] = 7; i[29] = 3;//Back facesi[30] = 5; i[31] = 1; i[32] = 6;i[33] = 6; i[34] = 1; i[35] = 2;IB->Unlock();return true;}void Skybox::Render( ){pre_render();D3DXMATRIX matView, matViewSave;Device->GetTransform( D3DTS_VIEW, &matViewSave );matView = matViewSave;matView._41 = 0.0f; matView._42 = -0.3f; matView._43 = 0.0f;Device->SetTransform( D3DTS_VIEW, &matView );Device->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0, 8, 0, 12 );Device->SetTransform( D3DTS_VIEW, &matViewSave );post_render();}void Skybox:re_render(){//Device->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );Device->SetRenderState( D3DRS_ZENABLE, false );Device->SetRenderState( D3DRS_ZWRITEENABLE, false );Device->SetRenderState( D3DRS_LIGHTING, false );Device->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );Device->SetStreamSource( 0, VB, 0, sizeof(d3d::XYZVertex) );}void Skybox:ost_render(){Device->SetRenderState( D3DRS_ZENABLE, true );Device->SetRenderState( D3DRS_ZWRITEENABLE, true );Device->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID);Device->SetRenderState( D3DRS_LIGHTING, true );}  Can anyone see any errors in there or is the problem elsewhere? 
  use source trags to avoid formatting.    ;  You need to call SetIndices(pIndexBuffer);Also call SetFVF(FVF);Other than that, I didn't see anything outright wrong.Chris   [edited by - Supernat02 on February 6, 2004 11:34:57 PM];  doh! 