store GL programs as GLProgram pointers instead of GLuints
This commit is contained in:
parent
914f08952b
commit
16ae435cbb
@ -134,10 +134,3 @@ void GLProgram_Init()
|
||||
rb_define_method(ruby_class, "link", (VALUE(*)(...))GLProgram_link, 0);
|
||||
rb_define_method(ruby_class, "load_uniform_location", (VALUE(*)(...))GLProgram_load_uniform_location, 1);
|
||||
}
|
||||
|
||||
GLuint GLProgram_GetID(VALUE program)
|
||||
{
|
||||
GLProgram * glprogram;
|
||||
Data_Get_Struct(program, GLProgram, glprogram);
|
||||
return glprogram->id;
|
||||
}
|
||||
|
@ -21,6 +21,12 @@ struct GLProgram
|
||||
};
|
||||
|
||||
void GLProgram_Init();
|
||||
GLuint GLProgram_GetID(VALUE program);
|
||||
|
||||
static inline GLProgram * GLProgram_FromRuby(VALUE glprogram_obj)
|
||||
{
|
||||
GLProgram * glprogram;
|
||||
Data_Get_Struct(glprogram_obj, GLProgram, glprogram);
|
||||
return glprogram;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -26,7 +26,7 @@ typedef struct
|
||||
{
|
||||
SDL_Window * sdl_window;
|
||||
GLBufferRef rect_buffer;
|
||||
GLuint programs[PROGRAM_COUNT];
|
||||
GLProgram * programs[PROGRAM_COUNT];
|
||||
} Window;
|
||||
|
||||
static VALUE ruby_class;
|
||||
@ -159,7 +159,7 @@ static VALUE Window_new(VALUE klass)
|
||||
ID2SYM(rb_intern(program_names[i])));
|
||||
if (RTEST(program))
|
||||
{
|
||||
window->programs[i] = GLProgram_GetID(program);
|
||||
window->programs[i] = GLProgram_FromRuby(program);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user