[vlc-commits] direct3d11: move AllocateShaderView() in d3d11_fmt.h
Steve Lhomme
git at videolan.org
Tue Jun 13 15:01:33 CEST 2017
vlc | branch: master | Steve Lhomme <robux4 at videolabs.io> | Mon May 29 13:45:30 2017 +0200| [955fe17a7b45c014058ffac3be15eaf59550d944] | committer: Jean-Baptiste Kempf
direct3d11: move AllocateShaderView() in d3d11_fmt.h
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=955fe17a7b45c014058ffac3be15eaf59550d944
---
modules/video_chroma/d3d11_fmt.h | 54 +++++++++++++++++++++++++++++++++
modules/video_output/win32/direct3d11.c | 53 --------------------------------
2 files changed, 54 insertions(+), 53 deletions(-)
diff --git a/modules/video_chroma/d3d11_fmt.h b/modules/video_chroma/d3d11_fmt.h
index 8d6e17cf76..cf129037e2 100644
--- a/modules/video_chroma/d3d11_fmt.h
+++ b/modules/video_chroma/d3d11_fmt.h
@@ -24,6 +24,7 @@
#define VLC_VIDEOCHROMA_D3D11_FMT_H_
#include <d3d11.h>
+#include <assert.h>
#include "dxgi_fmt.h"
@@ -78,4 +79,57 @@ static inline void ReleasePictureSys(picture_sys_t *p_sys)
}
}
+/* map texture planes to resource views */
+static inline int AllocateShaderView(vlc_object_t *obj, ID3D11Device *d3ddevice,
+ const d3d_format_t *format,
+ ID3D11Texture2D *p_texture, UINT slice_index,
+ ID3D11ShaderResourceView *resourceView[D3D11_MAX_SHADER_VIEW])
+{
+ HRESULT hr;
+ int i;
+ D3D11_SHADER_RESOURCE_VIEW_DESC resviewDesc = { 0 };
+ D3D11_TEXTURE2D_DESC texDesc;
+ ID3D11Texture2D_GetDesc(p_texture, &texDesc);
+ assert(texDesc.BindFlags & D3D11_BIND_SHADER_RESOURCE);
+
+ if (texDesc.ArraySize == 1)
+ {
+ resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
+ resviewDesc.Texture2D.MipLevels = 1;
+ }
+ else
+ {
+ resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
+ resviewDesc.Texture2DArray.MipLevels = -1;
+ resviewDesc.Texture2DArray.ArraySize = 1;
+ resviewDesc.Texture2DArray.FirstArraySlice = slice_index;
+ }
+ for (i=0; i<D3D11_MAX_SHADER_VIEW; i++)
+ {
+ resviewDesc.Format = format->resourceFormat[i];
+ if (resviewDesc.Format == DXGI_FORMAT_UNKNOWN)
+ resourceView[i] = NULL;
+ else
+ {
+ hr = ID3D11Device_CreateShaderResourceView(d3ddevice, (ID3D11Resource*)p_texture, &resviewDesc, &resourceView[i]);
+ if (FAILED(hr)) {
+ msg_Err(obj, "Could not Create the Texture ResourceView %d slice %d. (hr=0x%lX)", i, slice_index, hr);
+ break;
+ }
+ }
+ }
+
+ if (i != D3D11_MAX_SHADER_VIEW)
+ {
+ while (--i >= 0)
+ {
+ ID3D11ShaderResourceView_Release(resourceView[i]);
+ resourceView[i] = NULL;
+ }
+ return VLC_EGENERIC;
+ }
+
+ return VLC_SUCCESS;
+}
+
#endif /* include-guard */
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index e56acabcfe..187cedbe82 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -574,59 +574,6 @@ static void Close(vlc_object_t *object)
free(vd->sys);
}
-/* map texture planes to resource views */
-static int AllocateShaderView(vlc_object_t *obj, ID3D11Device *d3ddevice,
- const d3d_format_t *format,
- ID3D11Texture2D *p_texture, UINT slice_index,
- ID3D11ShaderResourceView *resourceView[D3D11_MAX_SHADER_VIEW])
-{
- HRESULT hr;
- int i;
- D3D11_SHADER_RESOURCE_VIEW_DESC resviewDesc = { 0 };
- D3D11_TEXTURE2D_DESC texDesc;
- ID3D11Texture2D_GetDesc(p_texture, &texDesc);
- assert(texDesc.BindFlags & D3D11_BIND_SHADER_RESOURCE);
-
- if (texDesc.ArraySize == 1)
- {
- resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
- resviewDesc.Texture2D.MipLevels = 1;
- }
- else
- {
- resviewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
- resviewDesc.Texture2DArray.MipLevels = -1;
- resviewDesc.Texture2DArray.ArraySize = 1;
- resviewDesc.Texture2DArray.FirstArraySlice = slice_index;
- }
- for (i=0; i<D3D11_MAX_SHADER_VIEW; i++)
- {
- resviewDesc.Format = format->resourceFormat[i];
- if (resviewDesc.Format == DXGI_FORMAT_UNKNOWN)
- resourceView[i] = NULL;
- else
- {
- hr = ID3D11Device_CreateShaderResourceView(d3ddevice, (ID3D11Resource*)p_texture, &resviewDesc, &resourceView[i]);
- if (FAILED(hr)) {
- msg_Err(obj, "Could not Create the Texture ResourceView %d slice %d. (hr=0x%lX)", i, slice_index, hr);
- break;
- }
- }
- }
-
- if (i != D3D11_MAX_SHADER_VIEW)
- {
- while (--i >= 0)
- {
- ID3D11ShaderResourceView_Release(resourceView[i]);
- resourceView[i] = NULL;
- }
- return VLC_EGENERIC;
- }
-
- return VLC_SUCCESS;
-}
-
static int AllocateTextures(vout_display_t *vd, const d3d_format_t *cfg,
video_format_t *fmt, unsigned pool_size,
ID3D11Texture2D *textures[],
More information about the vlc-commits
mailing list