… | |
… | |
658 | { |
658 | { |
659 | static struct program_object_i *cur; // currently bound program |
659 | static struct program_object_i *cur; // currently bound program |
660 | |
660 | |
661 | GLuint id; |
661 | GLuint id; |
662 | |
662 | |
663 | vertex_shader vsh; |
|
|
664 | fragment_shader fsh; |
|
|
665 | |
|
|
666 | map<uniform_i *,GLint> uloc; // uniform location |
663 | map<uniform_i *,GLint> uloc; // uniform location |
667 | |
664 | |
668 | program_object_i (); |
665 | program_object_i (); |
669 | ~program_object_i (); |
666 | ~program_object_i (); |
|
|
667 | |
|
|
668 | void attach (const ref<shader_object_i> &shader) |
|
|
669 | { |
|
|
670 | glAttachObjectARB (id, shader->id); |
|
|
671 | } |
670 | |
672 | |
671 | void link (); |
673 | void link (); |
672 | |
674 | |
673 | void enable (); |
675 | void enable (); |
674 | void disable (); |
676 | void disable (); |