/* * Copyright (C) 2005-2018 Team Kodi * This file is part of Kodi - https://kodi.tv * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSES/README.md for more information. */ #pragma once #include "GUITexture.h" #include "utils/ColorUtils.h" #include #include #include "system_gl.h" struct PackedVertex { float x, y, z; float u1, v1; float u2, v2; }; typedef std::vector PackedVertices; class CRenderSystemGLES; class CGUITextureGLES : public CGUITexture { public: static void Register(); static CGUITexture* CreateTexture( float posX, float posY, float width, float height, const CTextureInfo& texture); static void DrawQuad(const CRect& coords, UTILS::COLOR::Color color, CTexture* texture = nullptr, const CRect* texCoords = nullptr); CGUITextureGLES(float posX, float posY, float width, float height, const CTextureInfo& texture); ~CGUITextureGLES() override = default; CGUITextureGLES* Clone() const override; protected: void Begin(UTILS::COLOR::Color color) override; void Draw(float* x, float* y, float* z, const CRect& texture, const CRect& diffuse, int orientation) override; void End() override; private: CGUITextureGLES(const CGUITextureGLES& texture) = default; std::array m_col; PackedVertices m_packedVertices; std::vector m_idx; CRenderSystemGLES *m_renderSystem; };