Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,610
Записей в блоге: 12
#1

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

18.02.2012, 16:01. Просмотров 582. Ответов 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 );
  }
}
и почему без функции создания чайника прога не работает(происходит ошибка приложения)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 16:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос название библиотеки (C++):

Программа предлагает выбрать название страны и выводит на экран её название столицы - C++
Программа предлагает выбрать название страны и выводит на экран её название столицы. C++ Russia-Moscow. Если можно то НЕ через...

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

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

Определить название игральной карты и название масти - C++
Написать программу, в которой мастям игральных карт условно присвоены следующие порядковые номера масти : &quot;пики&quot; – 1, &quot;трефы&quot; – 2,...

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

Библиотеки?? - C++
Это вообще библиотеками называется, или класс или еще как? Где можно найти описание iostream.h, math.h и других библиотек. Заранее спс.

6
IFree Host
Заблокирован
18.02.2012, 16:04 #2
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
0
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,610
Записей в блоге: 12
18.02.2012, 16:11  [ТС] #3
Цитата Сообщение от IFree Host Посмотреть сообщение
Ну ты же сампл запускаешь
Возми пример, который создает просто пустое окно DirectX и потом создавай там собственный объект
вместо чайника
я простой пример раньше брал но там оказалась кучу много кода не зватает типа(двойной буферизации и т д)
0
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
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
1
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,610
Записей в блоге: 12
18.02.2012, 16:29  [ТС] #5
а кто нибудь может дать ссылку на КРАТКИЙ самоучитель 2D графике в DirectX
0
IFree Host
Заблокирован
19.02.2012, 02:01 #6
Можно спросить а почему не OpenGL
на мой взгляд (ненавижу сокращение "ИХМО") начинать лучше c OpenGL при поддержке glut
код будет на много короче, понятнее и проще
Особенно когда мало опыта программирования.
DirectX перенасыщен мемберными константами, которые по началу вообще не возможно запомнить
а значит, как следствие придется лезть за каждым отдельным случаем в справочник
а в OpenGL все понятно интуитивно.

да и кстати на счет КРАТКОГО cамоучителя можешь забыть
1
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,610
Записей в блоге: 12
19.02.2012, 10:29  [ТС] #7
IFree Host, Спасибо большое в OpenGL все легко и просто - то что надо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 10:29
Привет! Вот еще темы с ответами:

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

Библиотеки Си - C++
Скиньте ссылку где можно посмотреть самые распространенные библиотеки с описанием функций которые в них входят

Библиотеки С++ - C++
Есть ли какой-нибудь справочник по описанию С/С++ библиотек, заголовочных файлов, макросов и прочего? Для печати//англ/русск//примеры

Библиотеки - C++
Доброго времени суток всем!!! Появилась одна идея...в которой используется проверка орфографии... Писать анализатор с нуля не хочется,...


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

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

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