Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строка в DirectX 
:(
    Опции темы
Evgen24
Дата 6.9.2010, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 31.7.2007
Где: Россия

Репутация: нет
Всего: нет



 Вроде бы, судя по статьям и форумам, вывожу правильно (использую VS2008):

Код

#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <d3dx9core.h>
#include <mmsystem.h>


#define WINDOW_WIDTH 800    // разрешение экрана
#define WINDOW_HEIGHT 600

HWND    main_window_handle = NULL;

LPDIRECT3D9 pDirect3D = NULL;
LPDIRECT3DDEVICE9 pDirect3DDevice = NULL;
LPD3DXFONT pFont = NULL;      // Шрифт Direct3D


LRESULT CALLBACK fnMessageProcessor (HWND, UINT, WPARAM, LPARAM);

HRESULT InitDirect3D(HWND hwnd)
{
    HFONT hFont;

              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 = FALSE;
    Direct3DParametr.SwapEffect = D3DSWAPEFFECT_DISCARD;
    Direct3DParametr.BackBufferFormat = Display.Format;
    Direct3DParametr.EnableAutoDepthStencil = TRUE;
    Direct3DParametr.AutoDepthStencilFormat = D3DFMT_D16;
    Direct3DParametr.BackBufferWidth = WINDOW_WIDTH;
    Direct3DParametr.BackBufferHeight = WINDOW_HEIGHT;
    Direct3DParametr.BackBufferCount = 3;
    Direct3DParametr.FullScreen_RefreshRateInHz = Display.RefreshRate;

    if (FAILED(pDirect3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, 
        D3DCREATE_SOFTWARE_VERTEXPROCESSING, &Direct3DParametr, &pDirect3DDevice)))
        return E_FAIL;

    hFont = CreateFont(30, 10, 0, 0, FW_NORMAL, FALSE, FALSE, 0, 1, 0, 0, 0,
        DEFAULT_PITCH | FF_MODERN, "Arial");

    D3DXCreateFontW(pDirect3DDevice, hFont, &pFont);

    return S_OK;
}

void Render()
{
    RECT rec;

    pDirect3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(60, 100, 150), 1.0f, 0);

    pDirect3DDevice->BeginScene();
    
    rec.left = 10;
    rec.top = 10;
    rec.right = 200;
    rec.bottom = 100;

    pFont->Begin();
    pFont->DrawText("DirectX 9.0 init OK", &rec, DT_WORDBREAK, D3DCOLOR_ARGB(250, 0, 0, 250));
    pFont->End();

    pDirect3DDevice->EndScene();
}



в итоге получаю ответ компилятора:

1>d:\myprojects_ms_vc\projecta\projecta\main.cpp(56) : error C2660: 'D3DXCreateFontW' : function does not take 3 arguments
1>d:\myprojects_ms_vc\projecta\projecta\main.cpp(74) : error C2039: 'Begin' : is not a member of 'ID3DXFont'
1>        c:\program files\microsoft directx 9.0 sdk (october 2005)\include\d3dx9core.h(314) : see declaration of 'ID3DXFont'
1>d:\myprojects_ms_vc\projecta\projecta\main.cpp(75) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 4 arguments
1>d:\myprojects_ms_vc\projecta\projecta\main.cpp(76) : error C2039: 'End' : is not a member of 'ID3DXFont'
1>        c:\program files\microsoft directx 9.0 sdk (october 2005)\include\d3dx9core.h(314) : see declaration of 'ID3DXFont'

что у меня пошло не так?  smile 
PM MAIL ICQ   Вверх
shuttle
Дата 26.9.2010, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Делай так

Код

LPD3DXFONT            font;
font            =0;

D3DXFONT_DESC hFont1;
ZeroMemory(&hFont1, sizeof(D3DXFONT_DESC));
hFont1.Height=25;
hFont1.Width=12;
hFont1.Weight=500;
hFont1.Italic=false;
hFont1.CharSet=DEFAULT_CHARSET;
strcpy(hFont1.FaceName, "Times New Roman");
D3DXCreateFontIndirect(g_pd3dDevice, &hFont1, &font);


RECT rectFPS;
rectFPS.top=10;
rectFPS.left=10;    
rectFPS.bottom=100;
rectFPS.right=70;
font->DrawText(0,"FPS", -1,&rectFPS, 0, 0xffffffff);

--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.