Sha256: b9d5cc4eb573bcf8006d7df1be913aab43e5c5084c50a72ffe5992aa7b5838ef
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
module Hate module Graphics module Shader class Program def initialize @program = glCreateProgram end def attach(shader) glAttachShader(@program, shader) self end def compile glLinkProgram(@program) self end def run glUseProgram(@program) end end class Base attr_reader :shader def initialize(file) source = [] source << MemoryPointer.from_string(File.open(file).read) arg = MemoryPointer.new(:pointer, source.length) source.each_with_index do |p, i| arg[i].put_pointer(0, p) end if self.class == Hate::Graphics::Shader::Vertex @shader = glCreateShader(GL_VERTEX_SHADER) elsif self.class == Hate::Graphics::Shader::Fragment @shader = glCreateShader(GL_FRAGMENT_SHADER) end glShaderSource(@shader, source.size, arg, nil) glCompileShader(@shader) end end class Vertex < Base end class Fragment < Base end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hate-0.1.0 | lib/hate/graphics/shader.rb |