HLFX.Ru Forum
Показать все 6 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Создание GLSL шейдеров (https://hlfx.ru/forum/showthread.php?threadid=3024)


Отправлено fire64 29-09-2011 в 11:38:

Создание GLSL шейдеров

Сейчас изучаю GLSL шейдеры.

Написал вот этот код

C++ Source Code:
1
GLuint VertShader;
2
GLuint FragShader;
3
GLuint Frag2Shader;
4
GLuint BaseShader;
5
 
6
 
7
bool GLSLShaders::ShaderInit( )
8
{
9
  char *vs = NULL;
10
  char *fs = NULL;
11
  char *fs2 = NULL;
12
 
13
  VertShader = glCreateShader(GL_VERTEX_SHADER);
14
  FragShader = glCreateShader(GL_FRAGMENT_SHADER);
15
  Frag2Shader = glCreateShader(GL_FRAGMENT_SHADER);
16
 
17
 
18
  vs = ShaderLoad("toon.vert");
19
 
20
  if(!vs)
21
  {
22
    return false;
23
  }
24
 
25
  fs = ShaderLoad("toon.frag");
26
 
27
  if(!fs)
28
  {
29
    return false;
30
  }
31
 
32
  fs2 = ShaderLoad("toon2.frag");
33
 
34
  if(!fs2)
35
  {
36
    return false;
37
  }
38
 
39
  ...
40
 
41
  return true;
42
}


Но он почему-то вылетает при вызове glCreateShader

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 29-09-2011 в 11:52:

glCreateShader равен NULL?

__________________

xaerox on Vivino


Отправлено fire64 29-09-2011 в 12:09:

Понятия не имею. учитывая, что как раз при вызове первого же glCreateShader программа вылетает, с сообщением об ошибке.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 29-09-2011 в 12:15:

А как насчет посмотреть в отладчике?

__________________

xaerox on Vivino


Отправлено fire64 29-09-2011 в 12:43:

Видимые:

code:
VertShader 0 unsigned int - fs2 0x00000000 <Неправильный указатель> char * CXX0030: ошибка: невозможно вычислить выражение - this 0x023ead48 class GLSLShaders g_GlslShadera {VertShader=0 FragShader=0 Frag2Shader=0 ...} GLSLShaders * const VertShader 0 unsigned int FragShader 0 unsigned int Frag2Shader 0 unsigned int BaseShader 0 unsigned int


Стек вызовов:
code:
00000000() GLSLShaders::ShaderInit() Строка 50 + 0xc байт C++


Добавлено 29-09-2011 в 16:43:

О_о

Добавил glewInit(), теперь не вылетает

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено XaeroX 29-09-2011 в 13:56:

Ну и отлично.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 11:14.
Показать все 6 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024