Antkeeper  0.0.1
Public Member Functions | Friends | List of all members
gl::shader_object Class Reference

Shader object which can be compiled and linked to a shader program. More...

#include <shader-object.hpp>

Public Member Functions

 shader_object (shader_stage stage)
 Creates an empty shader object for the specified shader stage. More...
 
 ~shader_object ()
 Destroys a shader object. More...
 
void source (std::string_view source_code)
 Replaces the source code of the shader object. More...
 
bool compile ()
 Compiles the shader object. More...
 
shader_stage stage () const noexcept
 Returns the shader stage of this shader object. More...
 
const std::string & info () const noexcept
 Returns the shader object info log, which is updated when the shader object is compiled. More...
 
bool compiled () const noexcept
 Returns true if the shader object has been successfully compiled, false otherwise. More...
 
 shader_object (const shader_object &)=delete
 
shader_objectoperator= (const shader_object &)=delete
 

Friends

class shader_program
 

Detailed Description

Shader object which can be compiled and linked to a shader program.

See also
gl::shader_program
gl::shader_stage

Definition at line 38 of file shader-object.hpp.

Constructor & Destructor Documentation

◆ shader_object() [1/2]

gl::shader_object::shader_object ( shader_stage  stage)
explicit

Creates an empty shader object for the specified shader stage.

Parameters
stageShader stage in which this shader object will be used.
Exceptions
std::runtime_errorAn error occurred while creating an OpenGL shader object.

Definition at line 33 of file shader-object.cpp.

◆ ~shader_object()

gl::shader_object::~shader_object ( )

Destroys a shader object.

Definition at line 47 of file shader-object.cpp.

◆ shader_object() [2/2]

gl::shader_object::shader_object ( const shader_object )
delete

Member Function Documentation

◆ compile()

bool gl::shader_object::compile ( )

Compiles the shader object.

Returns
true if the shader object was compiled successfully, false otherwise. If compilation fails, check the info log via shader_object::get_info_log() for more information.
Exceptions
std::runtime_errorShader object handle is not a value generated by OpenGL.
std::runtime_errorShader object handle is not a shader object.
See also
shader_object::get_info_log()

Definition at line 60 of file shader-object.cpp.

◆ compiled()

bool gl::shader_object::compiled ( ) const
inlinenoexcept

Returns true if the shader object has been successfully compiled, false otherwise.

Definition at line 90 of file shader-object.hpp.

◆ info()

const std::string& gl::shader_object::info ( ) const
inlinenoexcept

Returns the shader object info log, which is updated when the shader object is compiled.

Definition at line 84 of file shader-object.hpp.

◆ operator=()

shader_object& gl::shader_object::operator= ( const shader_object )
delete

◆ source()

void gl::shader_object::source ( std::string_view  source_code)

Replaces the source code of the shader object.

Parameters
source_codeString containing shader object source code.
Exceptions
std::runtime_errorShader object handle is not a value generated by OpenGL.
std::runtime_errorShader object handle is not a shader object.

Definition at line 52 of file shader-object.cpp.

◆ stage()

shader_stage gl::shader_object::stage ( ) const
inlinenoexcept

Returns the shader stage of this shader object.

Definition at line 78 of file shader-object.hpp.

Friends And Related Function Documentation

◆ shader_program

friend class shader_program
friend

Definition at line 99 of file shader-object.hpp.


The documentation for this class was generated from the following files: