Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Maxim1923
2 / 2 / 0
Регистрация: 19.05.2012
Сообщений: 13
#1

Неправильно работает код на C++ для директа 9

03.04.2013, 22:50. Просмотров 278. Ответов 0
Метки нет (Все метки)

Второй день ломаю голову, программа должна просто вывести жёлтый фон, но выводит серый так как? наверне не срабатывает метод RenderingDirect3D();
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <windows.h>
#include <d3d9.h>
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")
LPDIRECT3D9 pDirect3D=NULL;
LPDIRECT3DDEVICE9 pDirect3DDevice=NULL;
 
HRESULT IntialDirect3D(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;
    if (FAILED(pDirect3D->CreateDevice(D3DADAPTER_DEFAULT,
                                       D3DDEVTYPE_HAL,hwnd,
                                       D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                       &Direct3DParametr, &pDirect3DDevice)))
     
      return E_FAIL;
      return S_OK;
}
 
VOID RenderingDirect3D(){
    if (pDirect3DDevice==NULL) return;
    pDirect3DDevice->Clear(0,NULL,D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,0),1.0f,0);
    pDirect3DDevice->BeginScene();
    pDirect3DDevice->EndScene();
    pDirect3DDevice->Present(NULL,NULL,NULL,NULL);
}
VOID DeleteDirect3D(){
    if (pDirect3DDevice!=NULL) pDirect3DDevice->Release();
    if (pDirect3D!=NULL) pDirect3D->Release();
}
LRESULT CALLBACK MainWinProc(HWND hwnd,
                             UINT msg,
                             WPARAM wparam,
                             LPARAM lparam){
    switch(msg)
    { case WM_PAINT:
    RenderingDirect3D();
    ValidateRect(hwnd,NULL);
          break;
      case WM_DESTROY:
          { DeleteDirect3D();
              PostQuitMessage(0);
            return(0);
          } break;
    }
    return(DefWindowProc(hwnd,msg,wparam,lparam));
}
 
int WINAPI WinMain(
    HINSTANCE histance,
    HINSTANCE hprevinstanse,
    LPSTR     lpcmdline,
    int       ncmdshow){
 
WNDCLASSEX windowsclass;
HWND hwnd;
MSG msg;
windowsclass.cbSize=sizeof(WNDCLASSEX);
windowsclass.style=CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
windowsclass.lpfnWndProc=MainWinProc;
windowsclass.cbClsExtra=0;
windowsclass.cbWndExtra=0;
windowsclass.hInstance=histance;
windowsclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
windowsclass.hCursor=LoadCursor(NULL,IDC_ARROW);
windowsclass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
windowsclass.lpszMenuName=NULL;
windowsclass.lpszClassName=L"WNDOWSCLASS";
windowsclass.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
if(!RegisterClassEx(&windowsclass))
    return(0);
if(!(hwnd=CreateWindowEx(NULL,L"WNDOWSCLASS",L"Базовое окно для DirectX",
    WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,500,400,NULL,NULL,histance,NULL)))
return(0);
ShowWindow(hwnd,SW_SHOWDEFAULT);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
return(msg.wParam);
}
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2013, 22:50
Ответы с готовыми решениями:

Код работает неправильно
// Synapce.cpp: определяет точку входа для приложения. // #include...

Подключённая DLL неправильно работает
Добрый вечер. Проблема вот в чём . Созданная библиотека и подключённая...

Неправильно работает обновления окна
Доброго времени суток. Просьба подсказать или указать на ошибку. Окно...

Это устройство работает неправильно, т.к. Windows не удается загрузить для него нужные драйверы. (Код 31)
Я купил кабель для диагностики атомобилей марки VW, - KKL VAG-COM for 409.1,...

Неправильно работает код
Доброго всем времени суток. Помогите разобраться. Есть код: vari = 1;...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2013, 22:50

Неправильно работает код
Привет. Я начинающий программист, осваиваю Си. Код программы этой компилится,...

Неправильно работает код
Пишу парсер.Вот кусочек кода : private void GetRGB(string Line, ColorRGB...

неправильно работает код
var Form1: TForm1; A:array of integer; i,max,min,s:integer; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru