[WASAPI] fix stream types and frequencies enumeration
[xbmc.git] / xbmc / guilib / TextureGLES.h
blobfe7af24917af37392982a0ed897f6ea3f8785b73
1 /*
2 * Copyright (C) 2024 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "Texture.h"
13 #include "system_gl.h"
15 struct TextureFormat
17 GLenum internalFormat{GL_FALSE};
18 GLenum internalFormatSRGB{GL_FALSE};
19 GLint format{GL_FALSE};
20 GLenum type{GL_UNSIGNED_BYTE};
23 struct TextureSwizzle
25 GLint r{GL_RED};
26 GLint g{GL_GREEN};
27 GLint b{GL_BLUE};
28 GLint a{GL_ALPHA};
31 class CGLESTexture : public CTexture
33 public:
34 CGLESTexture(unsigned int width = 0, unsigned int height = 0, XB_FMT format = XB_FMT_A8R8G8B8);
35 ~CGLESTexture() override;
37 void CreateTextureObject() override;
38 void DestroyTextureObject() override;
39 void LoadToGPU() override;
40 void BindToUnit(unsigned int unit) override;
41 bool SupportsFormat(KD_TEX_FMT textureFormat, KD_TEX_SWIZ textureSwizzle) override;
43 protected:
44 void SetSwizzle(bool swapRB);
45 void SwapBlueRedSwizzle(GLint& component);
46 TextureFormat GetFormatGLES20(KD_TEX_FMT textureFormat);
47 TextureFormat GetFormatGLES30(KD_TEX_FMT textureFormat);
49 GLuint m_texture = 0;
50 bool m_isGLESVersion30orNewer{false};