Advertisement Jump to content


This topic is now archived and is closed to further replies.


Strange problem in Direct3D Retained Mode

This topic is 6787 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I get crazy! In D3DRM I´m trying get textures on some objects, but here is a VERY strange thing! I must do one extra AddGroup() call after I have created all the objects, else the texture will not show up! And this is only neccesary in Direct3D HAL, not in RGB Emulation! It´s driving me crazy!

void Direct3D::CreateRMCubes()
   unsigned vertorder[] = { 0,1,3,2,  4,5,7,6,  8,9,11,10,  
		12,13,15,14,  16,17,19,18,  20,21,23,22 };

   // Copy vertex to vertexlist

   D3DRMVERTEX vertexlist[24];
   memset(vertexlist, sizeof(D3DRMVERTEX)*24, 0);
   for(int i=0; i<24; i++)
   memcpy(&vertexlist<i>, g_App.m_Vertices.fVertex+(i*8), sizeof(float)*8);
   // Load texture

   if(m_pD3DRM->LoadTexture(g_App.m_chBmpName, &texture) != D3DRM_OK)
      SHOW("Failed to load texture");

   // create cube mesh


   if(lpCubeMesh->AddGroup( 24, 6, 4, vertorder, &group ) != D3DRM_OK)
      SHOW("Failed to add group");

   if(lpCubeMesh->SetVertices( group, 0, 24, vertexlist) != D3DRM_OK)
      SHOW("Failed to SetVertices");

   if(lpCubeMesh->SetGroupTexture(group, (LPDIRECT3DRMTEXTURE) texture) != D3DRM_OK)
      SHOW("Failed to set group texture");

   // create cube frames

   m_pCube = new LPDIRECT3DRMFRAME3[g_App.m_usCubes];
   for(i=0; i<g_App.m_usCubes; i++)
      m_pD3DRM->CreateFrame(m_pScene, &m_pCube<i>);

   for(int h=0; h<g_App.m_usCubes; h++)
      // Improves render speed


      // Improves texture mapping

         SHOW("Failed to set group mapping");
      // Add mesh to cube

      m_pCube[h]->AddVisual( (LPDIRECT3DRMVISUAL)  lpCubeMesh );	

   /* HERE IS THE FOX! Is this really neccesary? 
    If I un-comment this everything is fine and the textures shows up! */ 

   //	m_DeviceMode.m_iCurrentDevice].strDesc, "Direct3D HAL") == 0)
   //lpCubeMesh->AddGroup( 24, 6, 4, vertorder, &group );

   // release objects.

   if(lpCubeMesh) {lpCubeMesh->Release(); lpCubeMesh=0;}
   if(texture) {texture->Release(); texture = NULL;}

Thanks for reading. Edited by - Gandalf on 6/21/00 7:32:51 AM Edited by - Gandalf on 6/21/00 7:33:43 AM Edited by - Gandalf on 6/21/00 7:34:25 AM Edited by - Gandalf on 6/21/00 7:34:59 AM Edited by - Gandalf on 6/21/00 7:35:26 AM Edited by - Gandalf on 6/21/00 7:36:01 AM Edited by - Gandalf on 6/21/00 7:36:49 AM

Share this post

Link to post
Share on other sites
What the is wrong with this setup process?

1. Building up the vertex structure.
2. Loading a texture.
3. Creating a group with 24 vertex, 6 sides and 4 vertex per side.
4. Set vertex position.
5. Set texture to the group.
6. Creating 90 frames.
7. Add mesh to every frame.

(se details above)

Edited by - Gandalf on June 21, 2000 9:51:53 AM

Share this post

Link to post
Share on other sites
May I make a suggestion? Switch to IM. You could do D3DX and it would be a lot better since it will be supported in the future. I wish I could help you, but I didn''t really study RM. Not many people here know how to use RM so it would be hard to ask for help.

Captured Reality

Share this post

Link to post
Share on other sites
I think the problem is my 3D card (RIVA TNT PCI). I have tried almost everything now.

Any suggestions?

Gandalf the White

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!