Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
1

Первая ошибка в RED Studio XE

10.09.2011, 10:23. Просмотров 2883. Ответов 22
Метки нет (Все метки)


Помогите с ошибкой. написал небольшой код хаотел сохранить проект, а RSX(Red studoi xe) выдает ошибку. '3DSpiral' is not a valid identifier. Root filenames of IDE-managed units must be valid identifiers.. ".
так и не смог сохранить проект.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2011, 10:23
Ответы с готовыми решениями:

Red Alert 3, ошибка DirectX
При запуске red alert 3 выдает ошибку direct x убедитесь что на компьютере установлен пакет direct...

Red Bean PHP ошибка сохранения. R::store();
//$uid Массив с ID (00000000,00000001...) $eventscount = "12"; //Название столбца в таблице....

Первая программа в visual studio 2013 и сразу ошибки
Добрый день. Наконец-то сел за изучение Си. Установил visual studio, написал hello world как в...

Найти книжку Марк Г. Собелл "Практическое руководство по Red Hat Linux: Fedora Core и Red Hat Enterprise Linux"
Добрый день! не подскажите где в эл. виде найти книгу Марк Г. Собелл "Практическое руководство...

22
LK
Заблокирован
10.09.2011, 10:44 2
3DSpiral - это что ? внутриматочное противозачаточное средство ? не удивительно, что Билдер его не проглотил ...
Compiler Errors And Warnings (C++) Index
Introduction to Windows Controls
Variables and Data Types
искайте свою спираль...
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 11:03  [ТС] 3
Цитата Сообщение от LK Посмотреть сообщение
3DSpiral - это что ? внутриматочное противозачаточное средство ? не удивительно, что Билдер его не проглотил ...
Compiler Errors And Warnings (C++) Index
Introduction to Windows Controls
Variables and Data Types
искайте свою спираль...
Да НЕТ это код из книги OPENGL Супер книга. ну вообщем понятно что модератор занят. Алах Акбар.

Добавлено через 3 минуты
Цитата Сообщение от LK Посмотреть сообщение
3DSpiral
это название проекта.
0
LK
Заблокирован
10.09.2011, 11:12 4
в подобных случаях как бы принято показывать код, вызвавший ошибку, да и о книге можно подробнее рассказать
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 12:00  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
в подобных случаях как бы принято показывать код, вызвавший ошибку, да и о книге можно подробнее рассказать
Ладно, незнаю почему но все заработало. все сохраняет.
Есть один вопрос. Вот код
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
#include "gl/gl.h"
#include "gl/glu.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define GL_PI 3.1415f
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 //чистим экран на черный и ставим цвет точек зеленым
 glClearColor(0.0f, 0.0f,0.0f,0.1f);
 glColor3f(0.0f,0.1f,0.0f);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
      GLfloat x,y,z,angel;
      glClear(GL_COLOR_BUFFER_BIT);
      glPushMatrix();
      glRotatef(xRot,1.0f,0.0f,0.0f);//Здесь ош-а
      glRotatef(yRot,0.0f,1.0f,0.0f);//и здесь
      glBegin(GL_POINTS);
      z= -50.0f;
      for(angel=0.0f; angel <= (2.0f*GL_PI)*3.0f; angel += 0.1f)
      {
       x=50.0f*sin(angel);
       y=50.0f*cos(angel);
       glVertex3f(x,y,z);
       z += 0.5f;
      }
      //Прорисовываем точки
      glEnd;
      //Очищаем видео буфер
      glPopMatrix();
      //Очищаем стек команд рисования
      glFlush;
}
//---------------------------------------------------------------------------
непонятно почему но вот.
[BCC32 Error] Unit2.cpp(32): E2451 Undefined symbol 'xRot'
Full parser context
Unit2.cpp(28): parsing: void _fastcall TForm2::Button2Click(TObject *)
0
LK
Заблокирован
10.09.2011, 12:28 6
если это пример из книги и вы нигде не упустили тип этого самого xRot, который может быть , например, int , или float ... (glRotatef(angle, ...), то не хватает заголовочного файла (#include "???") где он определен, хотя , в данном случае, нет, поставьте,например
C++
1
glRotatef (90.0,...
и посмотрите, что получится

Добавлено через 9 минут
Учебник по OpenGL

Добавлено через 14 минут
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 12:36  [ТС] 7
понятно, вообщем поствляю 90.0 вместо xRot и yRot. это наверное углы поворота. щас посмотрим.
теперь незнаю может опдключить библиотеку matg, а то выдает ошибку [BCC32 Error] Unit2.cpp(38): E2268 Call to undefined function 'sin' и 'cos'
0
LK
Заблокирован
10.09.2011, 12:42 8
ага...
C++
1
glRotatef(angle, ...
angle как бы и есть угол
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 13:00  [ТС] 9
1.angel есть нетолько переменая шага цикла но и угол в радианах.
2. в книге пишиться что сценой можно управлять клавишами стрелок, мне кажеться что xRot и yRot это команды.
0
LK
Заблокирован
10.09.2011, 13:06 10
так эти команды тоже должны быть где-нибудт определены
а подставить значение вы не пробовали ?
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 13:07  [ТС] 11
Цитата Сообщение от LK Посмотреть сообщение
так эти команды тоже должны быть где-нибудт определены
а подставить значение вы не пробовали ?
не пробывал потомучто выдает ошибку о том что ф-йи cos sin нерапознаються я уже писал.

а с поворотом я разобрался там xRot это не ф-я а пере-я на каждое нажатие клавиши есть определение вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TFormMain::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Key == VK_UP)
        glRotatef(-5, 1.0, 0.0, 0.0);
    if(Key == VK_DOWN)
        glRotatef(5, 1.0, 0.0, 0.0);
    if(Key == VK_LEFT)
        glRotatef(-5, 0.0, 1.0, 0.0);
    if(Key == VK_RIGHT)
        glRotatef(5, 0.0, 1.0, 0.0);
}
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
10.09.2011, 13:10 12
Цитата Сообщение от alekseirudoi Посмотреть сообщение
в книге пишиться что сценой можно управлять клавишами стрелок, мне кажеться что xRot и yRot это команды.
это не команды а переменные в которых хранится значения твоих углов поворота
Цитата Сообщение от alekseirudoi Посмотреть сообщение
Undefined symbol 'xRot'
и они нигде не объявлены - добавь
C++
1
float xRot,yRot;
где-то в области видимости
Цитата Сообщение от alekseirudoi Посмотреть сообщение
теперь незнаю может опдключить библиотеку matg, а то выдает ошибку [BCC32 Error] Unit2.cpp(38): E2268 Call to undefined function 'sin' и 'cos'
подключи
C++
1
#include <math.h>
0
LK
Заблокирован
10.09.2011, 13:20 13
про float было уже, в шестом сообщении, товарищ игнорирует
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 13:26  [ТС] 14
Все ненадо тратить на эту тему время в этой книге программы взаимосвязаны по цепочке, я разберусь только возьму пример из RED XE.
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
10.09.2011, 13:30 15
Цитата Сообщение от alekseirudoi Посмотреть сообщение
Все ненадо тратить на эту тему время в этой книге программы взаимосвязаны по цепочке, я разберусь только возьму пример из RED XE.
а зачем тогда вообше нужно было создавать эту тему?
логично что они связаны - но если ты и дальше будешь просто копировать то ничего не поймешь(а так можешь искать пример из RED XE)
0
LK
Заблокирован
10.09.2011, 13:36 16
и еще разберитесь со средой разработки, у меня она RAD , а у вас - красная
1
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
10.09.2011, 14:12  [ТС] 17
Цитата Сообщение от SalterOk Посмотреть сообщение
но если ты и дальше будешь просто копировать то ничего не поймешь
Логично, просто думал что эта тема не кого незаинтресут кроме тех кто сремиться поднять свой рейтинг да и тех кто хочет разобраться с OPENGL. но если интресно можно разбираться онлайн. щас загоню исходники из ред студио.

Добавлено через 2 минуты
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
#include "GlSkel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
    : TForm(Owner)
{
    Application->OnIdle = IdleLoop;
    size = 50.0f;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::IdleLoop(TObject*, bool& done)
{
    done = false;
    RenderGLScene();
    SwapBuffers(hdc);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
    hdc = GetDC(Handle);
    SetPixelFormatDescriptor();
    hrc = wglCreateContext(hdc);
    if(hrc == NULL)
        ShowMessage(":-)~ hrc == NULL");
    if(wglMakeCurrent(hdc, hrc) == false)
        ShowMessage("Could not MakeCurrent");
    w = ClientWidth;
    h = ClientHeight;
 
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_CULL_FACE);
 
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    SetupLighting();
    SetupTextures();
    CreateInpriseCorporateLogo();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::SetPixelFormatDescriptor()
{
    PIXELFORMATDESCRIPTOR pfd = {
        sizeof(PIXELFORMATDESCRIPTOR),
        1,
        PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
        PFD_TYPE_RGBA,
        24,
        0,0,0,0,0,0,
        0,0,
        0,0,0,0,0,
        32,
        0,
        0,
        PFD_MAIN_PLANE,
        0,
        0,0,
    };
    PixelFormat = ChoosePixelFormat(hdc, &pfd);
    SetPixelFormat(hdc, PixelFormat, &pfd);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormResize(TObject *Sender)
{
 
    GLfloat nRange = 50.0;
 
    w = ClientWidth;
    h = ClientHeight;
    
    if(h == 0)
        h = 1;
 
    glViewport(0, 0, w, h);
 
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
 
    if (w <= h)
        glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
    else
    glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
 
    //For perspective correction
    //GLfloat aspect = (GLfloat)w/(GLfloat)h;
    //gluPerspective(30.0f, aspect, 1.0, 50.0);
 
 
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::RenderGLScene()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    DrawObjects();
    glFlush();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::DrawObjects()
{
    //GoldCube
    glBindTexture(GL_TEXTURE_2D, texture1);
 
    //Body
    glPushMatrix();
    glColor3f(0.8f, 0.8f, 0.8f);
    glTranslatef(0.0f, 15.0f, 20.0f);
    glRotatef(90, 1.0, 0.0, 0.0);
    glCallList(startoflist);
    glPopMatrix();
 
    //Top
    glPushMatrix();
    glDisable(GL_CULL_FACE);
    glColor3f(0.8f, 0.8f, 0.8f);
    glTranslatef(0.0f, 15.0f, 20.0f);
    glRotatef(-90, 1.0, 0.0, 0.0);
    glCallList(startoflist + 1);
    glEnable(GL_CULL_FACE);
    glPopMatrix();
 
    //Bottom
    glPushMatrix();
    glColor3f(0.8f, 0.8f, 0.8f);
    glTranslatef(0.0f, -10.0f, 20.0f);
    glRotatef(90, 1.0, 0.0, 0.0);
    glCallList(startoflist + 2);
    glPopMatrix();
 
 
    //Red Pyramid
    glBindTexture(GL_TEXTURE_2D, texture2);
    //Body
    glPushMatrix();
    glColor3f(1.0f, 0.0f, 0.0f);
    glTranslatef(-20.0f, -10.0f, -5.0);
    glRotatef(-90, 1.0, 0.0, 0.0);
    glCallList(startoflist + 3);
    glPopMatrix();
 
    //Bottom
    glPushMatrix();
    glColor3f(1.0f, 0.0f, 0.0f);
    glTranslatef(-20.0f, -10.0f, -5.0);
    glRotatef(90, 1.0, 0.0, 0.0);
    glCallList(startoflist + 4);
    glPopMatrix();
 
    //Blue Sphere
    glPushMatrix();
    glBindTexture(GL_TEXTURE_2D, texture3);
    glColor3f(0.0f, 0.0f, 1.0f);
    glTranslatef(15.0, 5.0f, -7.5f);
    glRotatef(90, 1.0, 0.0, 0.0);
    glRotatef(90, 0.0, 0.0, 1.0);
    glCallList(startoflist + 5);
    glPopMatrix();
 
    //Ring
    glPushMatrix();
    glDisable(GL_CULL_FACE);
    glRotatef(-90, 1.0, 0.0, 0.0);
    glCallList(startoflist + 6);
    glEnable(GL_CULL_FACE);
    glPopMatrix();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormPaint(TObject *Sender)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glFlush();
    DrawObjects();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormDestroy(TObject *Sender)
{
    gluDeleteQuadric(GoldCube);
    gluDeleteQuadric(GoldCubeTop);
    gluDeleteQuadric(GoldCubeBottom);
    gluDeleteQuadric(RedPyramid);
    gluDeleteQuadric(RedPyramidBottom);
    gluDeleteQuadric(BlueSphere);
    gluDeleteQuadric(Ring);
    delete bitmap;
    wglMakeCurrent(NULL, NULL);
    wglDeleteContext(hrc);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::CreateInpriseCorporateLogo()
{
    startoflist = glGenLists(4);
    DrawGoldCube();
    DrawRedPyramid();
    DrawBlueSphere();
    DrawRing();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::DrawGoldCube()
{
    GoldCube = gluNewQuadric();
    GoldCubeTop = gluNewQuadric();
    GoldCubeBottom = gluNewQuadric();
 
    glBindTexture(GL_TEXTURE_2D, texture1);
    gluQuadricTexture(GoldCube, GL_TRUE);
    gluQuadricDrawStyle(GoldCube, GLU_FILL);
    gluQuadricNormals(GoldCube, GLU_SMOOTH);
 
    gluQuadricTexture(GoldCubeTop, GL_TRUE);
    gluQuadricDrawStyle(GoldCubeTop, GLU_FILL);
    gluQuadricNormals(GoldCubeTop, GLU_SMOOTH);
 
    gluQuadricTexture(GoldCubeBottom, GL_TRUE);
    gluQuadricDrawStyle(GoldCubeBottom, GLU_FILL);
    gluQuadricNormals(GoldCubeBottom, GLU_SMOOTH);
 
    glNewList(startoflist, GL_COMPILE);
        gluCylinder(GoldCube, 15, 15, 25, 4, 10);
    glEndList();
 
    glNewList(startoflist + 1, GL_COMPILE);
        gluDisk(GoldCubeTop, 0, 15, 4, 1);
    glEndList();
 
    glNewList(startoflist + 2, GL_COMPILE);
        gluDisk(GoldCubeBottom, 0, 15, 4, 1);
    glEndList();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::DrawRedPyramid()
{
    RedPyramid = gluNewQuadric();
    RedPyramidBottom = gluNewQuadric();
 
    glBindTexture(GL_TEXTURE_2D, texture2);
    gluQuadricTexture(RedPyramid, GL_TRUE);
    gluQuadricDrawStyle(RedPyramid, GLU_FILL);
    gluQuadricNormals(RedPyramid, GLU_SMOOTH);
 
    gluQuadricTexture(RedPyramidBottom, GL_TRUE);
    gluQuadricDrawStyle(RedPyramidBottom, GLU_FILL);
    gluQuadricNormals(RedPyramidBottom, GLU_SMOOTH);
 
    glNewList(startoflist + 3, GL_COMPILE);
        gluCylinder(RedPyramid, 16, 0, 35, 4, 10);
    glEndList();
 
    glNewList(startoflist + 4, GL_COMPILE);
        gluCylinder(RedPyramidBottom, 16, 0, 1, 4, 10);
    glEndList();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::DrawBlueSphere()
{
    BlueSphere = gluNewQuadric();
 
    glBindTexture(GL_TEXTURE_2D, texture3);
    gluQuadricTexture(BlueSphere, GL_TRUE);
    gluQuadricDrawStyle(BlueSphere, GLU_FILL);
    gluQuadricNormals(BlueSphere, GLU_SMOOTH);
    glNewList(startoflist + 5, GL_COMPILE);
        gluSphere(BlueSphere, 15, 25, 25);
    glEndList();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::DrawRing()
{
    Ring = gluNewQuadric();
    glColor3f(1.0f, 1.0f, 1.0f);
    gluQuadricDrawStyle(Ring, GLU_FILL);
    gluQuadricNormals(Ring, GLU_SMOOTH);
    glNewList(startoflist + 6, GL_COMPILE);
        gluDisk(Ring, 24, 25, 50, 50);
    glEndList();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Key == VK_UP)
        glRotatef(-5, 1.0, 0.0, 0.0);
    if(Key == VK_DOWN)
        glRotatef(5, 1.0, 0.0, 0.0);
    if(Key == VK_LEFT)
        glRotatef(-5, 0.0, 1.0, 0.0);
    if(Key == VK_RIGHT)
        glRotatef(5, 0.0, 1.0, 0.0);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::SetupLighting()
{
    GLfloat MaterialAmbient[] = {0.5, 0.5, 0.5, 1.0};
    GLfloat MaterialDiffuse[] = {1.0, 1.0, 1.0, 1.0};
    GLfloat MaterialSpecular[] = {1.0, 1.0, 1.0, 1.0};
    GLfloat MaterialShininess[] = {50.0};
    GLfloat AmbientLightPosition[] = {0.5, 1.0, 1.0, 0.0};
    GLfloat LightAmbient[] = {0.5, 0.5, 0.5, 1.0};
 
    glMaterialfv(GL_FRONT, GL_AMBIENT, MaterialAmbient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE, MaterialDiffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR, MaterialSpecular);
    glMaterialfv(GL_FRONT, GL_SHININESS, MaterialShininess);
    glLightfv(GL_LIGHT0, GL_POSITION, AmbientLightPosition);
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, LightAmbient);
 
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_COLOR_MATERIAL);
    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
    glShadeModel(GL_SMOOTH);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::SetupTextures()
{
    bitmap = new Graphics::TBitmap;
    bitmap->LoadFromFile("..\\Drawing\\red.bmp");
    GLubyte bits[64][64][4];
    for(int i = 0; i < 64; i++)
    {
        for(int j = 0; j < 64; j++)
        {
            bits[i][j][0]= (GLbyte)GetRValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][1]= (GLbyte)GetGValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][2]= (GLbyte)GetBValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][3]= (GLbyte)255;
        }
    }
    glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
    glGenTextures(1, &texture1);
    glBindTexture(GL_TEXTURE_2D, texture1);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, bits);
 
    bitmap->LoadFromFile("..\\Drawing\\gold.bmp");
    for(int i = 0; i < 64; i++)
    {
        for(int j = 0; j < 64; j++)
        {
            bits[i][j][0]= (GLbyte)GetRValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][1]= (GLbyte)GetGValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][2]= (GLbyte)GetBValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][3]= (GLbyte)255;
        }
    }
    glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
    glGenTextures(1, &texture2);
    glBindTexture(GL_TEXTURE_2D, texture2);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, bits);
 
    bitmap->LoadFromFile("..\\Drawing\\blue.bmp");
    for(int i = 0; i < 64; i++)
    {
        for(int j = 0; j < 64; j++)
        {
            bits[i][j][0]= (GLbyte)GetRValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][1]= (GLbyte)GetGValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][2]= (GLbyte)GetBValue(bitmap->Canvas->Pixels[i][j]);
            bits[i][j][3]= (GLbyte)255;
        }
    }
    glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
    glGenTextures(1, &texture3);
    glBindTexture(GL_TEXTURE_2D, texture3);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, bits);
 
    glEnable(GL_TEXTURE_2D);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
}
 
 а вот и сам .h
//---------------------------------------------------------------------------
#ifndef GlSkelH
#define GlSkelH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <gl\gl.h>
#include <gl\glu.h>
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published:    // IDE-managed Componentsvoid __fastcall FormCreate(TObject *Sender);
    void __fastcall FormResize(TObject *Sender);
    void __fastcall FormPaint(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall FormKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift);
private:    // User declarations
    HDC hdc;
    HGLRC hrc;
    int PixelFormat;
    GLuint startoflist;
    GLfloat x, y, xstep, ystep, w, h;
    GLsizei size;
    GLuint texture1, texture2, texture3;
    GLUquadricObj* GoldCube, *GoldCubeTop, *GoldCubeBottom,
                    *RedPyramid, *RedPyramidBottom, *BlueSphere, *Ring;
    Graphics::TBitmap* bitmap;
public:     // User declarations
    __fastcall TFormMain(TComponent* Owner);
    void __fastcall IdleLoop(TObject*, bool&);
    void __fastcall RenderGLScene();
    void __fastcall SetPixelFormatDescriptor();
    void __fastcall DrawObjects();
    void __fastcall CreateInpriseCorporateLogo();
    void __fastcall DrawGoldCube();
    void __fastcall DrawRedPyramid();
    void __fastcall DrawBlueSphere();
    void __fastcall DrawRing();
    void __fastcall SetupLighting();
    void __fastcall SetupTextures();
 
 
};
//---------------------------------------------------------------------------
extern PACKAGE TFormMain *FormMain;
//---------------------------------------------------------------------------
#endif
Добавлено через 6 минут
Цитата Сообщение от LK Посмотреть сообщение
и еще разберитесь со средой разработки, у меня она RAD , а у вас - красная
да вы совершенно правы.

Добавлено через 23 минуты
Цитата Сообщение от alekseirudoi Посмотреть сообщение
#include <Classes.hpp>
вот что это за файл срасширением .hpp
0
LK
Заблокирован
10.09.2011, 14:14 18
в связи с чем это вас интересует ?
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
10.09.2011, 14:28 19
а в чем проблема(сейчас) - я попробовал твой код и он рабочий(никаких ошибок, кроме загрузки текстуры и дальше - у меня ее нет)
0
LK
Заблокирован
10.09.2011, 15:16 20
дык, поменял уже, кажись:
C++
1
2
glRotatef(90, 1.0, 0.0, 0.0);
glRotatef(-90, 1.0, 0.0, 0.0);
RSX(Red studoi xe) = Embarcadero RAD Studio C++ Builder XE , Его Величество, типа ...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2011, 15:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Первая ошибка
Решил написать самую первую программу на C++, которая выведет на экран &quot;Hello world&quot;. #include...

Red faction ошибка "xlive.dll"
при запуске пишет: &quot;Запуск программы невозможен, так как на компьютере отсутствует xlive.dll....

первая сложная ошибка в QT C++
о чем говорит это странное существо?? #include &quot;mywidget.h&quot; #include &quot;ui_mywidget.h&quot; ...

Первая программа, синтаксическая ошибка
Начал учить с++, взял книгу Лафоре-OOП, книга вроде хорошая, всё отлично и понятно расписано...


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

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

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