| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #pragma once
- #include "WallpaperEngine/Core/Objects/CImage.h"
- #include "WallpaperEngine/Render/Objects/Effects/CMaterial.h"
- #include "WallpaperEngine/Render/Objects/CEffect.h"
- #include "WallpaperEngine/Render/CObject.h"
- #include "WallpaperEngine/Render/CScene.h"
- #include "WallpaperEngine/Render/Shaders/Compiler.h"
- #include "WallpaperEngine/Assets/CTexture.h"
- #include <glm/vec3.hpp>
- using namespace WallpaperEngine;
- using namespace WallpaperEngine::Assets;
- namespace WallpaperEngine::Render::Objects::Effects
- {
- class CMaterial;
- }
- namespace WallpaperEngine::Render::Objects
- {
- class CEffect;
- class CImage : public CObject
- {
- public:
- CImage (CScene* scene, Core::Objects::CImage* image);
- void render () override;
- const Core::Objects::CImage* getImage () const;
- const std::vector<CEffect*>& getEffects () const;
- const GLfloat* getVertex () const;
- const GLuint* getVertexBuffer () const;
- const GLuint* getPassVertexBuffer () const;
- const GLuint* getTexCoordBuffer () const;
- protected:
- static const std::string Type;
- private:
- void generateMaterial (irr::video::ITexture* resultTexture);
- CTexture* m_texture;
- GLfloat m_vertexList [6 * 3];
- GLfloat m_passesVertexList [6 * 3];
- GLfloat m_texCoordList [6 * 2];
- GLuint m_vertexBuffer;
- GLuint m_passesVertexBuffer;
- GLuint m_texCoordBuffer;
- uint16_t m_vertexIndices [6];
- Core::Objects::CImage* m_image;
- std::vector<CEffect*> m_effects;
- Effects::CMaterial* m_material;
- irr::video::SMaterial m_irrlichtMaterial;
- irr::video::SMaterial m_irrlichtMaterialInvert;
- };
- }
|