10#ifndef ENGINE_GRAPHICS_GTEXTURE_H_
11#define ENGINE_GRAPHICS_GTEXTURE_H_
54 virtual unsigned int load(
const std::string& fullPath);
70 unsigned int loadMask(
const std::string& fullPath);
89 void bind(
int textureSlotNo)
const;
114 void draw(
int x,
int y,
int w,
int h);
115 void draw(
int x,
int y,
int w,
int h,
float rotate);
116 void draw(
int x,
int y,
int w,
int h,
int pivotx,
int pivoty,
float rotate);
117 void draw(glm::vec2 position, glm::vec2 size,
float rotate = 0.0f);
118 void draw(glm::vec2 position, glm::vec2 size, glm::vec2 pivot,
float rotate = 0.0f);
120 void drawSub(
int x,
int y,
int sx,
int sy,
int sw,
int sh);
121 void drawSub(
int x,
int y,
int w,
int h,
int sx,
int sy,
int sw,
int sh);
122 void drawSub(
int x,
int y,
int w,
int h,
int sx,
int sy,
int sw,
int sh,
float rotate);
123 void drawSub(
int x,
int y,
int w,
int h,
int sx,
int sy,
int sw,
int sh,
int pivotx,
int pivoty,
float rotate);
124 void drawSub(glm::vec2 pos, glm::vec2 size, glm::vec2 subpos, glm::vec2 subsize,
float rotate = 0.0f);
125 void drawSub(glm::vec2 pos, glm::vec2 size, glm::vec2 subpos, glm::vec2 subsize, glm::vec2 pivot,
float rotate = 0.0f);
174 unsigned int quadVAO, quadVBO;
175 glm::mat4 imagematrix;
Definition gRenderObject.h:25
gTexture & operator=(const gTexture &other)
int wrapt
Definition gTexture.h:154
void setDataInternalHDR(float *textureData, bool isMutable=false, bool isStbImage=false, bool clean=true)
int componentnum
Definition gTexture.h:150
void drawSub(glm::vec2 pos, glm::vec2 size, glm::vec2 subpos, glm::vec2 subsize, float rotate=0.0f)
int filtermag
Definition gTexture.h:154
int wraps
Definition gTexture.h:154
bool isstbimage
Definition gTexture.h:153
void copyFrom(const gTexture &other) noexcept
void drawSub(int x, int y, int w, int h, int sx, int sy, int sw, int sh, float rotate)
void setFiltering(int minFilter, int magFilter)
gTexture(const gTexture &other)
TextureType type
Definition gTexture.h:148
bool ismutable
Definition gTexture.h:152
void setWrapping(int wrapS, int wrapT)
const std::string & getFullPath() const
bool ishdr
Definition gTexture.h:166
void drawSub(const gRect &src, const gRect &dst, float rotate=0.f)
void draw(int x, int y, int w, int h, float rotate)
unsigned int loadTexture(const std::string &texturePath)
unsigned int setData(unsigned char *textureData, int width, int height, int componentNum, bool isMutable=false, bool isStbImage=false)
void draw(glm::vec2 position, glm::vec2 size, float rotate=0.0f)
TextureMagFilter
Definition gTexture.h:39
@ TEXTUREMINMAGFILTER_CLAMP
Definition gTexture.h:43
@ TEXTUREMINMAGFILTER_LINEAR
Definition gTexture.h:40
@ TEXTUREMINMAGFILTER_NEAREST
Definition gTexture.h:42
@ TEXTUREMINMAGFILTER_MIPMAPLINEAR
Definition gTexture.h:41
void swap(gTexture &other) noexcept
void draw(int x, int y, int w, int h, int pivotx, int pivoty, float rotate)
void setType(TextureType textureType)
unsigned int format
Definition gTexture.h:147
unsigned int internalformat
Definition gTexture.h:147
int filtermin
Definition gTexture.h:154
gTexture(gTexture &&other) noexcept
void drawSub(const gRect &src, const gRect &dst, int pivotx, int pivoty, float rotate=0.f)
TextureType getType() const
int width
Definition gTexture.h:150
std::string path
Definition gTexture.h:149
int height
Definition gTexture.h:150
void draw(int x, int y, int w, int h)
unsigned int loadMaskTexture(const std::string &maskTexturePath)
const std::string & getTypeName() const
TextureWrap
Definition gTexture.h:32
@ TEXTUREWRAP_CLAMP
Definition gTexture.h:34
@ TEXTUREWRAP_CLAMPTOEDGE
Definition gTexture.h:35
@ TEXTUREWRAP_NEAREST
Definition gTexture.h:36
@ TEXTUREWRAP_REPEAT
Definition gTexture.h:33
gTexture(int w, int h, int format=GL_RGBA, bool isFbo=false)
void saveTexture(std::string fileName)
void drawSub(int x, int y, int sx, int sy, int sw, int sh)
unsigned char * data
Definition gTexture.h:151
unsigned int setDataHDR(float *textureData, int width, int height, int componentNum, bool isMutable=false, bool isStbImage=false)
std::string directory
Definition gTexture.h:146
unsigned int getInternalFormat() const
void setDataInternal(unsigned char *textureData, bool isMutable=false, bool isStbImage=false, bool clean=true)
float * datahdr
Definition gTexture.h:167
const std::string & getDir() const
bool istextureallocated
Definition gTexture.h:170
const std::string & getFilename() const
unsigned int loadMask(const std::string &fullPath)
gTexture & operator=(gTexture &&other) noexcept
bool ismaskloaded
Definition gTexture.h:168
std::string getDirName(const std::string &fname)
std::string fullpath
Definition gTexture.h:146
unsigned int getId() const
unsigned int getFormat() const
int getComponentNum() const
static const std::string & getTypeName(TextureType textureType)
void drawSub(glm::vec2 pos, glm::vec2 size, glm::vec2 subpos, glm::vec2 subsize, glm::vec2 pivot, float rotate=0.0f)
unsigned char * getData()
TextureType
Definition gTexture.h:19
@ TEXTURETYPE_PBR_AO
Definition gTexture.h:28
@ TEXTURETYPE_COUNT
Definition gTexture.h:29
@ TEXTURETYPE_HEIGHT
Definition gTexture.h:23
@ TEXTURETYPE_NORMAL
Definition gTexture.h:22
@ TEXTURETYPE_PBR_ALBEDO
Definition gTexture.h:24
@ TEXTURETYPE_PBR_METALNESS
Definition gTexture.h:26
@ TEXTURETYPE_DIFFUSE
Definition gTexture.h:20
@ TEXTURETYPE_PBR_ROUGHNESS
Definition gTexture.h:25
@ TEXTURETYPE_PBR_NORMAL
Definition gTexture.h:27
@ TEXTURETYPE_SPECULAR
Definition gTexture.h:21
std::string getFileName(const std::string &fname)
void drawSub(int x, int y, int w, int h, int sx, int sy, int sw, int sh, int pivotx, int pivoty, float rotate)
void bind(int textureSlotNo) const
void drawSub(int x, int y, int w, int h, int sx, int sy, int sw, int sh)
void draw(glm::vec2 position, glm::vec2 size, glm::vec2 pivot, float rotate=0.0f)
gTexture * masktexture
Definition gTexture.h:169
void save(std::string fullpath)
void drawSub(const gRect &src, const gRect &dst, glm::vec2 pivot, float rotate=0.f)
virtual unsigned int load(const std::string &fullPath)
unsigned int id
Definition gTexture.h:147