[vlc-commits] direct3d11: keep track of the number of vertices we use
Steve Lhomme
git at videolan.org
Wed Nov 16 14:13:27 CET 2016
vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Tue Nov 15 17:30:30 2016 +0100| [e6a843c05229f695bac98598451420f51068da7d] | committer: Jean-Baptiste Kempf
direct3d11: keep track of the number of vertices we use
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e6a843c05229f695bac98598451420f51068da7d
---
modules/video_output/win32/common.h | 1 +
modules/video_output/win32/direct3d11.c | 9 ++++-----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/video_output/win32/common.h b/modules/video_output/win32/common.h
index 8dc980c..d64668e 100644
--- a/modules/video_output/win32/common.h
+++ b/modules/video_output/win32/common.h
@@ -61,6 +61,7 @@ typedef struct
typedef struct
{
ID3D11Buffer *pVertexBuffer;
+ UINT vertexCount;
ID3D11Texture2D *pTexture;
ID3D11ShaderResourceView *d3dresViewY;
ID3D11ShaderResourceView *d3dresViewUV;
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index 4a29d5f..b42b00e 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -1688,11 +1688,12 @@ static int AllocQuad(vout_display_t *vd, const video_format_t *fmt, d3d_quad_t *
vout_display_sys_t *sys = vd->sys;
D3D11_MAPPED_SUBRESOURCE mappedResource;
HRESULT hr;
+ quad->vertexCount = 4;
D3D11_BUFFER_DESC bd;
memset(&bd, 0, sizeof(bd));
bd.Usage = D3D11_USAGE_DYNAMIC;
- bd.ByteWidth = sizeof(d3d_vertex_t) * 4;
+ bd.ByteWidth = sizeof(d3d_vertex_t) * quad->vertexCount;
bd.BindFlags = D3D11_BIND_VERTEX_BUFFER;
bd.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
@@ -1947,10 +1948,8 @@ static void UpdateQuadOpacity(vout_display_t *vd, const d3d_quad_t *quad, float
if (SUCCEEDED(hr)) {
d3d_vertex_t *dst_data = mappedResource.pData;
- dst_data[0].opacity = opacity;
- dst_data[1].opacity = opacity;
- dst_data[2].opacity = opacity;
- dst_data[3].opacity = opacity;
+ for (size_t i=0; i<quad->vertexCount; ++i)
+ dst_data[i].opacity = opacity;
ID3D11DeviceContext_Unmap(sys->d3dcontext, (ID3D11Resource *)quad->pVertexBuffer, 0);
}
More information about the vlc-commits
mailing list