Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2012, 01:39   #1
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию DirectX Вроде бы все по феншую, но нифига не отображается.

На форме не рисуется ничего, кроме стартовой заливки.. Не знаю даже, на что думать..
Код:
struct CUSTOMVERTEX
{
    float x,y,z;
    DWORD color;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)

HRESULT InitialDirect3D( HWND hwnd )
	{
    if( NULL == ( pDirect3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
		{
        return E_FAIL;
	};

    D3DDISPLAYMODE Display;	
    if( FAILED( pDirect3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &Display ) ) )
        return E_FAIL;

    D3DPRESENT_PARAMETERS Direct3DParametr; 
    ZeroMemory( &Direct3DParametr, sizeof(Direct3DParametr) );
    Direct3DParametr.Windowed         = TRUE;
    Direct3DParametr.SwapEffect       = D3DSWAPEFFECT_DISCARD;
    Direct3DParametr.BackBufferFormat = Display.Format;
    Direct3DParametr.EnableAutoDepthStencil = TRUE;
    Direct3DParametr.AutoDepthStencilFormat = D3DFMT_D16;


    if( FAILED( pDirect3D -> CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
                                      D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                      &Direct3DParametr, &pDirect3DDevice ) ) )
        return E_FAIL;
    
    pDirect3DDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
	pDirect3DDevice->SetRenderState( D3DRS_LIGHTING, false ); 
    pDirect3DDevice->SetRenderState( D3DRS_ZENABLE, true ); 
    return S_OK;
};  

void RenderTest() // специально сделал отдельную функцию все-в-одном, по идее она должна выводить ломаную линию.. Висит на Form1_Paint
	{
		if(pDirect3DDevice!=NULL)
		pDirect3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET, 0x000fff00, 1.0f, 0 ); // очистка происходит, остальное фиг
		else MessageBox::Show("вротмненоги",""); 

		CUSTOMVERTEX V[3]= {
			{ 1, 1, 1, 0x0000000f},
			{ 1,-1, 1, 0x0000000f},
			{-1,-1, 1, 0x0000000f}, };

		LPDIRECT3DVERTEXBUFFER9 BV=NULL;

		pDirect3DDevice->CreateVertexBuffer( sizeof(V), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &BV, NULL );
		if(BV==NULL) return;
		VOID* pBV;
		BV->Lock( 0, sizeof(V), (void**)&pBV, 0 );
		memcpy( pBV, V, sizeof(V) );
		BV->Unlock();

		pDirect3DDevice->BeginScene(); 

			D3DXMATRIX MatrixView;
			D3DXMatrixLookAtLH( &MatrixView, &D3DXVECTOR3 ( 2, 2, 2 ), &D3DXVECTOR3 ( 0, 0, 0 ), &D3DXVECTOR3 ( 0, 1, 0 ) );
			pDirect3DDevice->SetTransform( D3DTS_VIEW, &MatrixView );

			pDirect3DDevice->SetStreamSource( 0, BV, 0, sizeof(CUSTOMVERTEX) );
			pDirect3DDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
			pDirect3DDevice->DrawPrimitive(D3DPT_LINESTRIP, 0, 2);

		pDirect3DDevice->EndScene();  
		pDirect3DDevice->Present( NULL, NULL, NULL, NULL );
};
Где я облажался?
WarHamster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди проблема со змейкой ужасно долго старался но не получилось в одном месте, хотя вроде бы все правильно написал! zhenka619 Паскаль, Turbo Pascal, PascalABC.NET 4 24.01.2012 16:30
Сайт на css не отображается в IE (все версии) wedmac HTML и CSS 2 21.04.2010 19:54
В содержании отображается только стиль Заголовок1, хотя в параметрах указаны все девять заголовков alevtina07 Microsoft Office Word 5 20.01.2010 14:03
Мучаю учебник по Си :) Каждое слово на отдельной строке, вроде все нормально, но... Матвейка Помощь студентам 1 10.06.2009 19:56