load shaders from Ruby on Window creation
This commit is contained in:
1 parent
d85a0de9df
commit
8604d6d5ad
4 files changed
+30
-44
No files matched your search
-42
@@ -21,48 +21,6 @@ bool GUI::load()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GUI::load_shaders()
|
||||
{
|
||||
static const char * shader_sources[PROGRAM_COUNT][2] = {
|
||||
{"text.v.glsl", "text.f.glsl"},
|
||||
{"basic.v.glsl", "basic.f.glsl"},
|
||||
{"rect.v.glsl", "basic.f.glsl"},
|
||||
};
|
||||
|
||||
for (int i = 0; i < PROGRAM_COUNT; i++)
|
||||
{
|
||||
PathRef shader_paths[2];
|
||||
GLShaderRef shaders[2];
|
||||
|
||||
m_programs[i] = new GLProgram();
|
||||
|
||||
for (int j = 0; j < 2; j++)
|
||||
{
|
||||
/* TODO */
|
||||
shader_paths[j] = NULL;
|
||||
#if 0
|
||||
shader_paths[j] = Runtime::locate(Runtime::SHADER, shader_sources[i][j]);
|
||||
#endif
|
||||
if (shader_paths[j] == NULL)
|
||||
{
|
||||
std::cerr << "Could not find shader source " << shader_sources[i][j] << std::endl;
|
||||
return false;
|
||||
}
|
||||
shaders[j] = new GLShader();
|
||||
if (!shaders[j]->create(j == 0 ? GL_VERTEX_SHADER : GL_FRAGMENT_SHADER, shader_paths[j]))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
m_programs[i]->attach_shader(shaders[j]);
|
||||
}
|
||||
if (!m_programs[i]->link())
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GUI::load_buffers()
|
||||
{
|
||||
static const GLint rect_coords[4][2] = {
|
||||
|
||||
+4
-1
@@ -91,7 +91,10 @@ static VALUE Window_new(VALUE klass)
|
||||
|
||||
one_created = true;
|
||||
|
||||
return Data_Wrap_Struct(ruby_class, NULL, Window_free, window);
|
||||
VALUE rv = Data_Wrap_Struct(ruby_class, NULL, Window_free, window);
|
||||
rb_obj_call_init(rv, 0, NULL);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
void Window_Init(void)
|
||||
|
||||
Reference in new issue
Block a user