sculpto
Public Member Functions | List of all members
scl::gl_texture_2d Class Reference

#include <gl_texture.h>

Inheritance diagram for scl::gl_texture_2d:
scl::texture_2d

Public Member Functions

render_primitive::handle GetHandle () const override
 
 gl_texture_2d (const image &Image, texture_type Type)
 
 ~gl_texture_2d () override
 
void Bind (u32 Slot) const override
 
void Unbind () const override
 
void Free () override
 
image GetImage () override
 
- Public Member Functions inherited from scl::texture_2d
int GetWidth () const
 
int GetHeight () const
 
virtual ~texture_2d ()=default
 
virtual void Bind (u32 Slot) const =0
 
virtual void Unbind () const =0
 
virtual image GetImage ()=0
 
virtual void Free ()=0
 

Additional Inherited Members

- Static Public Member Functions inherited from scl::texture_2d
static shared< texture_2dCreate (const image &Image, texture_type Type=texture_type::COLOR)
 
- Protected Attributes inherited from scl::texture_2d
int Width {}
 
int Height {}
 

Detailed Description

Texture interface.

Definition at line 17 of file gl_texture.h.

Constructor & Destructor Documentation

◆ gl_texture_2d()

scl::gl_texture_2d::gl_texture_2d ( const image Image,
texture_type  Type 
)
  • OpenGL texture constructor by image container.
Parameters
Image- image container to get data from (pixels data can be null).
Type- texture type.
Returns
created texture pointer.

Definition at line 56 of file gl_texture.cpp.

57{
58 this->Width = Image.GetWidth();
59 this->Height = Image.GetHeight();
60
61 switch (Type)
62 {
63 case scl::texture_type::COLOR: this->CreateColor(Image, false); SCL_CORE_SUCCES("OpenGL Color Texture with id {} created.", Id); return;
64 case scl::texture_type::COLOR_FLOATING_POINT: this->CreateColor(Image, true); SCL_CORE_SUCCES("OpenGL HDR Texture with id {} created.", Id); return;
65 case scl::texture_type::DEPTH: this->CreateDepth(Image); SCL_CORE_SUCCES("OpenGL Depth Texture with id {} created.", Id); return;
66 }
67
68 SCL_CORE_ASSERT(0, "Unknown texture type.");
69}
#define SCL_CORE_ASSERT(expr,...)
Definition: assert.h:69
#define SCL_CORE_SUCCES(...)
Definition: log.h:42

◆ ~gl_texture_2d()

scl::gl_texture_2d::~gl_texture_2d ( )
override

Texture default destructor.

Definition at line 71 of file gl_texture.cpp.

72{
73 Free();
74}
void Free() override
Definition: gl_texture.cpp:91

Member Function Documentation

◆ Bind()

void scl::gl_texture_2d::Bind ( u32  Slot) const
overridevirtual
  • Bind texture to current render stage function.
Parameters
None.
Returns
None.

Implements scl::texture_2d.

Definition at line 76 of file gl_texture.cpp.

77{
78 if (Id == 0) return;
79
80 this->Slot = Slot;
81 glActiveTexture(GL_TEXTURE0 + Slot);
82 glBindTexture(GL_TEXTURE_2D, Id);
83}

◆ Free()

void scl::gl_texture_2d::Free ( )
overridevirtual
  • Unload texture from GPU memory function.
Parameters
None.
Returns
None.

Implements scl::texture_2d.

Definition at line 91 of file gl_texture.cpp.

92{
93 if (Id == 0) return;
94
95 glDeleteTextures(1, &Id);
96 Id = 0;
97}

◆ GetHandle()

render_primitive::handle scl::gl_texture_2d::GetHandle ( ) const
inlineoverride

OpenGL texture getter/setter functions.

Backend api render primitive hadnle getter function.

Definition at line 25 of file gl_texture.h.

25{ return Id; }

◆ GetImage()

scl::image scl::gl_texture_2d::GetImage ( )
overridevirtual
  • Load texture image from GPU memory function.
Parameters
None.
Returns
texture image.

Implements scl::texture_2d.

Definition at line 99 of file gl_texture.cpp.

100{
101 // TODO: Load image raw data from GPU and create image container from it.
102 return image();
103}

◆ Unbind()

void scl::gl_texture_2d::Unbind ( ) const
overridevirtual
  • Unbind texture from current render stage function.
Parameters
None.
Returns
None.

Implements scl::texture_2d.

Definition at line 85 of file gl_texture.cpp.

86{
87 glActiveTexture(GL_TEXTURE0 + this->Slot);
88 glBindTexture(GL_TEXTURE_2D, 0);
89}

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