86 lines
2.4 KiB
C++
86 lines
2.4 KiB
C++
#ifndef _GAME_ICON_H_
|
|
#define _GAME_ICON_H_
|
|
|
|
#include "GuiImageAsync.h"
|
|
#include "video/shaders/Shader3D.h"
|
|
|
|
class GameIcon : public GuiImageAsync
|
|
{
|
|
public:
|
|
GameIcon(const std::string & filename, GuiImageData *preloadImage);
|
|
virtual ~GameIcon();
|
|
|
|
void setRotationX(f32 r) {
|
|
rotationX = r;
|
|
}
|
|
void setColorIntensity(const glm::vec4 & color) {
|
|
colorIntensity = color;
|
|
colorIntensityMirror = colorIntensity;
|
|
selectionBlurOuterColorIntensity = color * glm::vec4(0.09411764f * 1.15f, 0.56862745f * 1.15f, 0.96862745098f * 1.15f, 1.0f);
|
|
selectionBlurInnerColorIntensity = color * glm::vec4(0.46666667f, 0.90588235f, 1.0f, 1.0f);
|
|
}
|
|
const glm::vec4 & getColorIntensity() const {
|
|
return colorIntensity;
|
|
}
|
|
void setAlphaFadeOutNorm(const glm::vec4 & a) {
|
|
alphaFadeOutNorm = a;
|
|
}
|
|
void setAlphaFadeOutRefl(const glm::vec4 & a) {
|
|
alphaFadeOutRefl = a;
|
|
}
|
|
void setRenderReflection(bool enable) {
|
|
bRenderReflection = enable;
|
|
}
|
|
void setSelected(bool enable) {
|
|
bSelected = enable;
|
|
}
|
|
void setStrokeRender(bool enable) {
|
|
bRenderStroke = enable;
|
|
}
|
|
void setRenderIconLast(bool enable) {
|
|
bIconLast = enable;
|
|
}
|
|
void draw(CVideo *pVideo) {
|
|
static const glm::mat4 identity(1.0f);
|
|
draw(pVideo, identity, identity, identity);
|
|
}
|
|
void draw(CVideo *pVideo, const glm::mat4 & projection, const glm::mat4 & view, const glm::mat4 & modelView);
|
|
|
|
bool checkRayIntersection(const glm::vec3 & rayOrigin, const glm::vec3 & rayDirFrac);
|
|
private:
|
|
enum eRenderState
|
|
{
|
|
RENDER_REFLECTION,
|
|
RENDER_NORMAL
|
|
};
|
|
|
|
bool bSelected;
|
|
bool bRenderStroke;
|
|
bool bRenderReflection;
|
|
bool bIconLast;
|
|
glm::vec4 colorIntensity;
|
|
glm::vec4 colorIntensityMirror;
|
|
glm::vec4 alphaFadeOutNorm;
|
|
glm::vec4 alphaFadeOutRefl;
|
|
|
|
f32 reflectionAlpha;
|
|
f32 strokeWidth;
|
|
f32 rotationX;
|
|
f32 rgbReduction;
|
|
f32 distanceFadeout;
|
|
f32 *texCoordsMirror;
|
|
f32 *strokePosVtxs;
|
|
f32 *strokeTexCoords;
|
|
u8 *strokeColorVtxs;
|
|
int strokeFractalEnable;
|
|
f32 strokeBlurBorder;
|
|
glm::vec4 selectionBlurOuterColorIntensity;
|
|
f32 selectionBlurOuterSize;
|
|
f32 selectionBlurOuterBorderSize;
|
|
glm::vec4 selectionBlurInnerColorIntensity;
|
|
f32 selectionBlurInnerSize;
|
|
f32 selectionBlurInnerBorderSize;
|
|
};
|
|
|
|
#endif // _GAME_ICON_H_
|