vlc | branch: master | Steve Lhomme <[email protected]> | Thu May 12 12:17:14 2016 +0200| [a1f4000b47ec376cb2522149076db4cc11c4ffab] | committer: Jean-Baptiste Kempf
direct3d11: set the RGB mask for RGB32 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a1f4000b47ec376cb2522149076db4cc11c4ffab --- modules/video_chroma/dxgi_fmt.c | 13 +++++++++++++ modules/video_chroma/dxgi_fmt.h | 1 + modules/video_output/win32/direct3d11.c | 2 ++ 3 files changed, 16 insertions(+) diff --git a/modules/video_chroma/dxgi_fmt.c b/modules/video_chroma/dxgi_fmt.c index be44b00..e7e6a85 100644 --- a/modules/video_chroma/dxgi_fmt.c +++ b/modules/video_chroma/dxgi_fmt.c @@ -25,6 +25,7 @@ #endif #include "dxgi_fmt.h" +#include <vlc_es.h> typedef struct { @@ -94,3 +95,15 @@ const d3d_format_t *GetRenderFormatList(void) { return d3d_formats; } + +void DxgiFormatMask(DXGI_FORMAT format, video_format_t *fmt) +{ + switch (format) + { + case DXGI_FORMAT_B8G8R8X8_UNORM: + fmt->i_rmask = 0x0000ff00; + fmt->i_gmask = 0x00ff0000; + fmt->i_bmask = 0xff000000; + break; + } +} diff --git a/modules/video_chroma/dxgi_fmt.h b/modules/video_chroma/dxgi_fmt.h index dc8839c..ba7b559 100644 --- a/modules/video_chroma/dxgi_fmt.h +++ b/modules/video_chroma/dxgi_fmt.h @@ -39,5 +39,6 @@ typedef struct extern const char *DxgiFormatToStr(DXGI_FORMAT format); extern const d3d_format_t *GetRenderFormatList(void); +extern void DxgiFormatMask(DXGI_FORMAT format, video_format_t *); #endif /* include-guard */ diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index 5161e19..8a45f19 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -969,6 +969,7 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) msg_Dbg( vd, "Using pixel format %s from chroma %4.4s", output_format->name, (char *)&i_src_chroma ); fmt->i_chroma = output_format->fourcc; + DxgiFormatMask( output_format->formatTexture, fmt ); sys->picQuadConfig.textureFormat = output_format->formatTexture; sys->picQuadConfig.resourceFormatYRGB = output_format->formatY; sys->picQuadConfig.resourceFormatUV = output_format->formatUV; @@ -991,6 +992,7 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) msg_Dbg( vd, "Using pixel format %s for chroma %4.4s", output_format->name, (char *)&i_src_chroma ); fmt->i_chroma = output_format->fourcc; + DxgiFormatMask( output_format->formatTexture, fmt ); sys->picQuadConfig.textureFormat = output_format->formatTexture; sys->picQuadConfig.resourceFormatYRGB = output_format->formatY; sys->picQuadConfig.resourceFormatUV = output_format->formatUV; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
