From 16ae435cbbdf35187b4eed9ca001c2fa8629c417 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 29 Jul 2014 20:27:06 -0400 Subject: [PATCH] store GL programs as GLProgram pointers instead of GLuints --- src/GLProgram.cc | 7 ------- src/GLProgram.h | 8 +++++++- src/Window.cc | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/GLProgram.cc b/src/GLProgram.cc index 8610b53..f154cdf 100644 --- a/src/GLProgram.cc +++ b/src/GLProgram.cc @@ -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; -} diff --git a/src/GLProgram.h b/src/GLProgram.h index 135095e..86140eb 100644 --- a/src/GLProgram.h +++ b/src/GLProgram.h @@ -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 diff --git a/src/Window.cc b/src/Window.cc index f222e10..7eafe8d 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -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 {