diff options
author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-06-04 22:09:57 +0200 |
---|---|---|
committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-06-08 13:13:27 +0200 |
commit | ace6c2318be5e8c5b2ad5f489d8144f28505d5f9 (patch) | |
tree | 0bde2e03aa840aba635109f6281215f64e99bb37 /src/video_core/renderer_opengl/gl_buffer_cache.cpp | |
parent | Merge pull request #10655 from Morph1984/msvc-cxx20 (diff) | |
download | yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar.gz yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar.bz2 yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar.lz yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar.xz yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.tar.zst yuzu-ace6c2318be5e8c5b2ad5f489d8144f28505d5f9.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_buffer_cache.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_buffer_cache.cpp b/src/video_core/renderer_opengl/gl_buffer_cache.cpp index c419714d4..0cc546a3a 100644 --- a/src/video_core/renderer_opengl/gl_buffer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_buffer_cache.cpp @@ -232,6 +232,15 @@ void BufferCacheRuntime::BindVertexBuffer(u32 index, Buffer& buffer, u32 offset, } } +void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings& bindings) { + for (u32 index = 0; index < bindings.buffers.size(); index++) { + BindVertexBuffer( + bindings.min_index + index, *reinterpret_cast<Buffer*>(bindings.buffers[index]), + static_cast<u32>(bindings.offsets[index]), static_cast<u32>(bindings.sizes[index]), + static_cast<u32>(bindings.strides[index])); + } +} + void BufferCacheRuntime::BindUniformBuffer(size_t stage, u32 binding_index, Buffer& buffer, u32 offset, u32 size) { if (use_assembly_shaders) { @@ -320,6 +329,15 @@ void BufferCacheRuntime::BindTransformFeedbackBuffer(u32 index, Buffer& buffer, static_cast<GLintptr>(offset), static_cast<GLsizeiptr>(size)); } +void BufferCacheRuntime::BindTransformFeedbackBuffers(VideoCommon::HostBindings& bindings) { + for (u32 index = 0; index < bindings.buffers.size(); index++) { + glBindBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, index, + reinterpret_cast<Buffer*>(bindings.buffers[index])->Handle(), + static_cast<GLintptr>(bindings.offsets[index]), + static_cast<GLsizeiptr>(bindings.sizes[index])); + } +} + void BufferCacheRuntime::BindTextureBuffer(Buffer& buffer, u32 offset, u32 size, PixelFormat format) { *texture_handles++ = buffer.View(offset, size, format); |