finish off GLShader_new()
This commit is contained in:
parent
864c5c2930
commit
43487eb415
@ -80,11 +80,28 @@ static void GLShader_free(void * ptr)
|
|||||||
static VALUE GLShader_new(VALUE klass, VALUE type, VALUE source)
|
static VALUE GLShader_new(VALUE klass, VALUE type, VALUE source)
|
||||||
{
|
{
|
||||||
GLShader * glshader = new GLShader();
|
GLShader * glshader = new GLShader();
|
||||||
|
GLenum shader_type;
|
||||||
|
|
||||||
#if 0
|
if (type == ID2SYM(rb_intern("vertex")))
|
||||||
/* TODO */
|
{
|
||||||
glshader->id = create_shader();
|
shader_type = GL_VERTEX_SHADER;
|
||||||
#endif
|
}
|
||||||
|
else if (type == ID2SYM(rb_intern("fragment")))
|
||||||
|
{
|
||||||
|
shader_type = GL_FRAGMENT_SHADER;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
type = rb_funcall(type, rb_intern("inspect"), 0);
|
||||||
|
const char * type_cstr = StringValueCStr(type);
|
||||||
|
rb_raise(rb_eRuntimeError,
|
||||||
|
"Unknown shader type: %s",
|
||||||
|
type_cstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
glshader->id = create_shader(shader_type,
|
||||||
|
RSTRING_PTR(source),
|
||||||
|
RSTRING_LEN(source));
|
||||||
|
|
||||||
return Data_Wrap_Struct(klass, NULL, GLShader_free, glshader);
|
return Data_Wrap_Struct(klass, NULL, GLShader_free, glshader);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user