xbmc
xbmc
cores
RetroPlayer
shaders
windows
ShaderTextureDX.h
1
/*
2
* Copyright (C) 2017-2020 Team Kodi
3
* This file is part of Kodi - https://kodi.tv
4
*
5
* SPDX-License-Identifier: GPL-2.0-or-later
6
* See LICENSES/README.md for more information.
7
*/
8
9
#pragma once
10
11
#include "cores/RetroPlayer/shaders/IShaderTexture.h"
12
#include "guilib/D3DResource.h"
13
#include "guilib/TextureDX.h"
14
15
#include <d3d11.h>
16
17
namespace
KODI
18
{
19
20
namespace
SHADER
21
{
22
23
template
<
typename
TextureType>
24
class
CShaderTextureDX
:
public
IShaderTexture
25
{
26
public
:
27
CShaderTextureDX
() =
default
;
28
CShaderTextureDX
(TextureType* texture) : m_texture(texture) {}
29
CShaderTextureDX
(TextureType& texture) : m_texture(&texture) {}
30
31
// Destructor
32
// Don't delete texture since it wasn't created here
33
~
CShaderTextureDX
()
override
=
default
;
34
35
float
GetWidth
()
const override
{
return
static_cast<
float
>
(m_texture->GetWidth()); }
36
float
GetHeight
()
const override
{
return
static_cast<
float
>
(m_texture->GetHeight()); }
37
38
void
SetTexture(TextureType* newTexture) { m_texture = newTexture; }
39
void
SetTexture(TextureType& newTexture) { m_texture = &newTexture; }
40
41
ID3D11ShaderResourceView* GetShaderResource()
const
{
return
m_texture->GetShaderResource(); }
42
43
TextureType* GetPointer() {
return
m_texture; }
44
45
private
:
46
TextureType* m_texture =
nullptr
;
47
};
48
49
using
CShaderTextureCD3D
=
CShaderTextureDX<CD3DTexture>
;
50
using
CShaderTextureCDX
=
CShaderTextureDX<CDXTexture>
;
51
52
}
// namespace SHADER
53
}
// namespace KODI
KODI::SHADER::CShaderTextureDX
Definition:
ShaderTextureDX.h:24
KODI::SHADER::CShaderTextureDX::GetWidth
float GetWidth() const override
Return width of texture.
Definition:
ShaderTextureDX.h:35
KODI
Definition:
AudioDecoder.h:18
KODI::SHADER::CShaderTextureDX::GetHeight
float GetHeight() const override
Return height of texture.
Definition:
ShaderTextureDX.h:36
KODI::SHADER::IShaderTexture
Definition:
IShaderTexture.h:15
Generated by
1.8.13