Форум программистов, компьютерный форум CyberForum.ru

название библиотеки - C++

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.02.2012, 16:01     название библиотеки #1
как называется библиотека в которой описана функция D3DXCreateTeapot ?

Добавлено через 4 минуты
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#include <windows.h>
#include <d3d9.h>
#include <d3dx9mesh.h>
 
 
 
 
 
class SampleApplication
{
  IDirect3D9       *pD3D;
  IDirect3DDevice9 *pDevice;
  ID3DXMesh        *pTeapot;
  HWND             hWnd;
 
  static LRESULT WINAPI MsgProc(HWND, UINT, WPARAM, LPARAM);
  bool   CreateMainWindow();
  void   CreateTeapot();
 
public:
 
  SampleApplication(): 
  pD3D(NULL), pDevice(NULL), pTeapot(NULL), hWnd(NULL){}
  bool InitD3D();
  void CleanupD3D();
  void Render();
  void MessagePump();
};
 
static SampleApplication g_App;
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  if(g_App.InitD3D())
  {
    g_App.MessagePump();
    g_App.CleanupD3D();
  }
  return 0;
}
 
bool SampleApplication::CreateMainWindow()
{
  // Регистрация класса окна
  WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, 
                  MsgProc, 0L, 0L, 
                  GetModuleHandle(NULL), NULL, NULL, 
                  NULL, NULL,
                  "Direct3D Class", NULL };
 
  RegisterClassEx( &wc );
 
  // Создание окна приложения
  hWnd = CreateWindow( "Direct3D Class", 
                     "Direct3D для чайников", 
                     WS_OVERLAPPEDWINDOW, 
                     100, 100, 400, 300,
                     GetDesktopWindow(), NULL, 
                     wc.hInstance, 0 );
  if(!hWnd)
  {
    MessageBox(0, "Ошибка создания главного окна", 
           0, MB_OK|MB_ICONSTOP);
    return false;
  }
  return true;
} 
 
void SampleApplication::MessagePump()
{
  MSG msg;
  while(GetMessage(&msg, 0, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
}
  LRESULT WINAPI SampleApplication::MsgProc(
    HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  g_App.hWnd = hWnd;
  switch( msg )
  {
    case WM_DESTROY:
      PostQuitMessage( 0 );
      return 0;
 
    case WM_PAINT:
    {
      PAINTSTRUCT ps;
      BeginPaint(hWnd, &ps);
      g_App.Render();
      EndPaint(hWnd, &ps);
      return 0;
    }
  }
  return DefWindowProc(g_App.hWnd, msg, wParam, lParam);
}
bool SampleApplication::InitD3D()
{
  if(!CreateMainWindow())
    return false;
 
  pD3D = Direct3DCreate9(D3D_SDK_VERSION);
 
  if(!pD3D)
    return false;
 
  D3DPRESENT_PARAMETERS params; 
  ZeroMemory( &params, sizeof(params) );
  params.Windowed = TRUE;
  params.SwapEffect = D3DSWAPEFFECT_DISCARD;
  params.BackBufferFormat = D3DFMT_UNKNOWN;
 
  HRESULT hr = pD3D->CreateDevice(
    D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    &params, &pDevice);
  if(FAILED(hr))
  {
    pD3D->Release();
    pD3D = 0;
    return false;
  }
 
 // D3DXCreateTeapot(pDevice, &pTeapot, 0);
 
  ShowWindow(hWnd, SW_SHOWDEFAULT);
  UpdateWindow(hWnd);
 
  return true;
}
void SampleApplication::CleanupD3D()
{
  if(pTeapot)
    pTeapot->Release();
  if(pDevice)
    pDevice->Release();
  if(pD3D)
    pD3D->Release();
}
 
void SampleApplication::Render()
{
  if(pDevice)
  {
    // Очистим область вывода темно-синим цветом
    pDevice->Clear( 0, NULL, 
      D3DCLEAR_TARGET, 
      D3DCOLOR_XRGB(0,0,128), 0.0f, 0 );
 
    // Рисуем сцену
    if( SUCCEEDED( pDevice->BeginScene() ) )
    {
      // создаем источник света
      D3DLIGHT9 light=
        { D3DLIGHT_DIRECTIONAL, // бесконечно удаленный источник
          {1,1,0,0},            // диффузное освещение: желтый цвет
          {0,0,0,0},            
          {0.1f,0.1f,0.1f,1},   // рассеянный свет: тусклый белый 
          {0,0,0},              
          {7,-2,1}              // вектор направления
        } ;
 
      pDevice->SetLight( 1, &light ) ;
      pDevice->LightEnable( 1, TRUE ) ;
      
      // создаем материал
      D3DMATERIAL9 material = { 
          {1,1,1,1}  
        , {1,1,1,1}  
        , {1,1,1,1}  
        , {0,0,0,0}  
        , 1          
        } ;
      pDevice->SetMaterial( &material ) ;
 
      float scale = 0.4f;
      D3DMATRIX transform = { 
        scale,      0.0f,        0.0f,        0.0f,
        0.0f,       scale,       0.0f,        0.0f,
        0.0f,       0.0f,        scale,       0.0f,
        0.0f,       0.0f,        1.0f,        1.0f
      };
 
      pDevice->SetTransform(D3DTS_WORLD, &transform);
 
      pTeapot->DrawSubset(0);
      pDevice->EndScene();
    }
 
    // Выводим содержимое вторичного буфера
    pDevice->Present( NULL, NULL, NULL, NULL );
  }
}
и почему без функции создания чайника прога не работает(происходит ошибка приложения)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 16:01     название библиотеки
Посмотрите здесь:

C++ Библиотеки
Библиотеки C++
C++ библиотеки в С++
библиотеки в си++ C++
C++ Библиотеки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IFree Host
Заблокирован
18.02.2012, 16:04     название библиотеки #2
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.02.2012, 16:11  [ТС]     название библиотеки #3
Цитата Сообщение от IFree Host Посмотреть сообщение
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
я простой пример раньше брал но там оказалась кучу много кода не зватает типа(двойной буферизации и т д)
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.02.2012, 16:16     название библиотеки #4
Цитата Сообщение от Van111 Посмотреть сообщение
как называется библиотека в которой описана функция D3DXCreateTeapot ?
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Header
D3dx9shape.h
Library
D3dx9.lib
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.02.2012, 16:29  [ТС]     название библиотеки #5
а кто нибудь может дать ссылку на КРАТКИЙ самоучитель 2D графике в DirectX
IFree Host
Заблокирован
19.02.2012, 02:01     название библиотеки #6
Можно спросить а почему не OpenGL
на мой взгляд (ненавижу сокращение "ИХМО") начинать лучше c OpenGL при поддержке glut
код будет на много короче, понятнее и проще
Особенно когда мало опыта программирования.
DirectX перенасыщен мемберными константами, которые по началу вообще не возможно запомнить
а значит, как следствие придется лезть за каждым отдельным случаем в справочник
а в OpenGL все понятно интуитивно.

да и кстати на счет КРАТКОГО cамоучителя можешь забыть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 10:29     название библиотеки
Еще ссылки по теме:

Библиотеки С++ C++
C++ Библиотеки (C++)
C++ Программа предлагает выбрать название страны и выводит на экран её название столицы

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
19.02.2012, 10:29  [ТС]     название библиотеки #7
IFree Host, Спасибо большое в OpenGL все легко и просто - то что надо
Yandex
Объявления
19.02.2012, 10:29     название библиотеки
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru