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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
#1

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

18.02.2012, 16:01. Просмотров 474. Ответов 6
Метки нет (Все метки)

как называется библиотека в которой описана функция 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     название библиотеки
Посмотрите здесь:

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin') - C++
какие библиотеки нужны для функций 'cout' и 'cin' ???

Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse) - C++
Как включить библиотеки в конечный EXE как это сделано в bilder, чтобы не приходилось ставить библиотеки.

Вызов функции одной динамической библиотеки из другой динамической библиотеки - C++
Добрый день! Помогите пожалуйста разобраться со следующим вопросом. Возможно ли из одной библиотеки передать параметры для...

Библиотеки - C++
Скажите какие есть библиотеки в с++.И для чего они нужны.

Библиотеки - C++
• &lt;ifstream&gt; - для работы с входными потоками, • &lt;ofstream&gt; - для работы с выходными потоками • &lt;fstream&gt; - для работы с...

библиотеки в С++ - C++
#include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; #include &lt;string&gt; что значат эти...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IFree Host
Заблокирован
18.02.2012, 16:04     название библиотеки #2
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
18.02.2012, 16:11  [ТС]     название библиотеки #3
Цитата Сообщение от IFree Host Посмотреть сообщение
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
я простой пример раньше брал но там оказалась кучу много кода не зватает типа(двойной буферизации и т д)
go
Эксперт C++
3586 / 1366 / 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,587
Записей в блоге: 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++
Это вообще библиотеками называется, или класс или еще как? Где можно найти описание iostream.h, math.h и других библиотек. Заранее спс.

Библиотеки - C++
#include &lt;iostream.h&gt; #include &lt;vector.h&gt; #include &lt;string.h&gt; #include &lt;algorithm.h&gt; #include &lt;iterator.h&gt; Можете скинуть сылку...

библиотеки в си++ - C++
помогите с библиотекой для распознавания русского алфавита

Библиотеки (C++) - C++
Привет! Пожалуйста, SOS! Ситуация такова, обучаюсь на дистанционных курсах программированию на С++, не могу справиться с ПО, все скачано,...


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

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

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