19,468
社区成员
发帖
与我相关
我的任务
分享
LHxxSCREENVERTEX g_Vertices[] =
{
{ 0.0f, 0.0f, 0.5f, 1.0f, 0.0f, 0.0f}, //红色
{ 200.0f, 0.0f, 0.5f, 1.0f, 1.0f, 0.0f},//蓝色
{ 0.0f , 200.0f, 0.5f, 1.0f, 0.0f, 1.0f},//绿色
{ 200.0f, 200.0f, 0.5f, 1.0f, 1.0f, 1.0f }//白色
};//0xffff0000//红色0xff00ff00//蓝色 0xff00ffff//绿色0xffffffff//白色
// 4-------6 + 2
// | / / |
// | / / |
// | / / |
// | / / |
// | / / |
// 5+ 3+------ 1
//给存放矩阵点分配空间
ob->LHxxScrVertex=(LHxxSCREENVERTEX*)malloc(4*sizeof(LHxxSCREENVERTEX ));
memset(ob->LHxxScrVertex,0,4*sizeof(LHxxSCREENVERTEX ));
// Create the vertex buffer.
if( FAILED( m_pd3dDevice->CreateVertexBuffer( 4*sizeof(LHxxSCREENVERTEX),
0, LHxxSCREENVERTEXFVF,
D3DPOOL_DEFAULT, &ob->LHxx2DMVertexBuffer,NULL ) ) )
{ MessageBox(SAVE_HWND, "CREATE_2DIMAGE vbuf", "error tex", MB_OK);return;}
// Now we fill the vertex buffer. To do this, we need to Lock() the VB to
// gain access to the vertices. This mechanism is required becuase vertex
// buffers may be in device memory.
LHxxSCREENVERTEX* pVertices;
if( FAILED( ob->LHxx2DMVertexBuffer->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) ) {return;}
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
for( DWORD i=0; i<4; i++ )
{ob->LHxxScrVertex[i]=((LHxxSCREENVERTEX *)pVertices)[i];}
ob->LHxx2DMVertexBuffer->Unlock();
//这部分是我对旋转写的一个函数
void scr_rotate1(LHxx2DIMAGE *ob,float angle)
{
angle=1;
float w=2,h=2;//旋转中心
float fco=w*cosf(angle);//求X坐标的位置
float fsi=h*sinf(angle);//求Y坐标的位置
LHxxSCREENVERTEX g_Vertices[] =
{
{ fco+0.0f, fsi+0.0f, 0.5f, 1.0f, 0.0f, 0.0f}, //红色
{ fco+200.0f, fsi+0.0f, 0.5f, 1.0f, 1.0f, 0.0f},//蓝色
{ fco+0.0f , fsi+200.0f, 0.5f, 1.0f, 0.0f, 1.0f},//绿色
{ fco+200.0f, fsi+200.0f, 0.5f, 1.0f, 1.0f, 1.0f }//白色
};//0xffff0000//红色0xff00ff00//蓝色 0xff00ffff//绿色0xffffffff//白色
//访问顶点缓冲区
LHxxSCREENVERTEX* pVertices;
if( FAILED( ob->LHxx2DMVertexBuffer->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) ) {return;}
memcpy( pVertices, g_Vertices, sizeof(g_Vertices) );
for( DWORD i=0; i<4; i++ )
{ob->LHxxScrVertex[i]=((LHxxSCREENVERTEX *)pVertices)[i];}
ob->LHxx2DMVertexBuffer->Unlock();
}