• Advertisement
Sign in to follow this  


This topic is 4784 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


sorry, I have one more problem :/

I have a header file that consists of every header file in my project.


#include <Windows.h>
#include <mmsystem.h>
#include <d3dx9.h>
#include <d3d9.h>
#include "globals.h"
#include "render.h"
#include "graphics.h"


in each header file, I #include "header list.h".

In render.h, I have a function "Render()" that calls another function "SetupMatrices". "SetupMatrices()" is located in graphics.h.

I get these two errors when I try to compile:

render.h(24) : error C3861: 'SetupMatrices': identifier not found, even with argument-dependent lookup

graphics.h(48) : error C2365: 'SetupMatrices' : redefinition; previous definition was a 'formerly unknown identifier'

here is my render header file and graphics header file:

#ifndef RENDER_H
#define RENDER_H

#include "header list.h"

// Name: Render()
// Desc: Draws the scene

VOID Render()
if( NULL == g_pd3dDevice )

// Clear the backbuffer to a blue color
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

// Begin the scene
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
// Setup the world, view, and projection matrices

// Render the vertex buffer contents
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );

// End the scene

// Present the backbuffer contents to the display
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );



#ifndef GRAPHICS_H
#define GRAPHICS_H

#include "header list.h"

// Name: InitGeometry()
// Desc: Creates the scene geometry
HRESULT InitGeometry()
// Initialize three vertices for rendering a triangle
CUSTOMVERTEX g_Vertices[] =
{ -1.0f,-1.0f, 0.0f, 0xffff0000, },
{ 1.0f,-1.0f, 0.0f, 0xff0000ff, },
{ 0.0f, 1.0f, 0.0f, 0xffffffff, },

// Create the vertex buffer.
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX),
return E_FAIL;

// Fill the vertex buffer.
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );

return S_OK;

// Name: SetupMatrices()
// Desc: Sets up the world, view, and projection transform matrices.
VOID SetupMatrices()
// For our world matrix, we will just rotate the object about the y-axis.
D3DXMATRIXA16 matWorld;

// Set up the rotation matrix to generate 1 full rotation (2*PI radians)
// every 1000 ms. To avoid the loss of precision inherent in very high
// floating point numbers, the system time is modulated by the rotation
// period before conversion to a radian angle.
UINT iTime = timeGetTime() % 1000;
FLOAT fAngle = iTime * (2.0f * D3DX_PI) / 1000.0f;
D3DXMatrixRotationY( &matWorld, fAngle );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

// Set up our view matrix. A view matrix can be defined given an eye point,
// a point to lookat, and a direction for which way is up. Here, we set the
// eye five units back along the z-axis and up three units, look at the
// origin, and define "up" to be in the y-direction.
D3DXVECTOR3 vEyePt( 0.0f, 3.0f,-5.0f );
D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
g_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );

// For the projection matrix, we set up a perspective transform (which
// transforms geometry from 3D view space to 2D viewport space, with
// a perspective divide making objects smaller in the distance). To build
// a perpsective transform, we need the field of view (1/4 pi is common),
// the aspect ratio, and the near and far clipping planes (which define at
// what distances geometry should be no longer be rendered).
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f );
g_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );


the only way I can fix the error is to #include "graphics.h" inside of "render.h".... I shouldn't have to though because I already included "header list.h" inside of "render.h"

if you see something I don't, please reply

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement