Sha256: 7f572edbaa4daed88dab5f65e0b6b1d8ae3a09541239fc96762d1abf11b3d733

Contents?: true

Size: 1.86 KB

Versions: 8

Compression:

Stored size: 1.86 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __RAYS_SRC_SHADER_PROGRAM_H__
#define __RAYS_SRC_SHADER_PROGRAM_H__


#include <xot/pimpl.h>
#include <rays/defs.h>
#include <rays/coord.h>
#include "opengl.h"


namespace Rays
{


	class ShaderSource;
	class Texture;


	class ShaderProgram
	{

		typedef ShaderProgram This;

		public:

			ShaderProgram (
				const ShaderSource& vertex,
				const ShaderSource& fragment,
				uint flags);

			~ShaderProgram ();

			void set_uniform (const char* name, int arg1);

			void set_uniform (const char* name, int arg1, int arg2);

			void set_uniform (const char* name, int arg1, int arg2, int arg3);

			void set_uniform (const char* name, int arg1, int arg2, int arg3, int arg4);

			void set_uniform (const char* name, const int* args, size_t size);

			void set_uniform (const char* name, float arg1);

			void set_uniform (const char* name, float arg1, float arg2);

			void set_uniform (const char* name, float arg1, float arg2, float arg3);

			void set_uniform (const char* name, float arg1, float arg2, float arg3, float arg4);

			void set_uniform (const char* name, const float* args, size_t size);

			void set_uniform (const char* name, const Coord2& vec2);

			void set_uniform (const char* name, const Coord3& vec3);

			void set_uniform (const char* name, const Coord4& vec4);

			void set_uniform (const char* name, const Texture& texture);

			GLuint id () const;

			const ShaderSource& vertex_shader_source () const;

			const ShaderSource& fragment_shader_source () const;

			operator bool () const;

			bool operator ! () const;

			friend bool operator == (const This& lhs, const This& rhs);

			friend bool operator != (const This& lhs, const This& rhs);

			struct Data;

			Xot::PSharedImpl<Data> self;

	};// ShaderProgram


	void ShaderProgram_activate (const ShaderProgram& program);

	void ShaderProgram_deactivate ();


}// Rays


#endif//EOH

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rays-0.1.36 src/shader_program.h
rays-0.1.35 src/shader_program.h
rays-0.1.34 src/shader_program.h
rays-0.1.33 src/shader_program.h
rays-0.1.32 src/shader_program.h
rays-0.1.31 src/shader_program.h
rays-0.1.30 src/shader_program.h
rays-0.1.29 src/shader_program.h