Skip to content

Commit cf2379d

Browse files
committed
Change "get_back_buffer" to use return value instead of output parameter
1 parent e045a1b commit cf2379d

16 files changed

+60
-60
lines changed

include/reshade_api.hpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -888,18 +888,17 @@ namespace reshade { namespace api
888888
/// </summary>
889889
/// <param name="index">Index of the back buffer. This has to be between zero and the value returned by <see cref="get_back_buffer_count"/>.</param>
890890
/// <param name="out_handle">Pointer to a variable that is set to the handle of the back buffer resource.</param>
891-
virtual void get_back_buffer(uint32_t index, resource *out_handle) = 0;
892-
/// <summary>
893-
/// Gets the current back buffer resource.
894-
/// </summary>
895-
/// <param name="out_handle">Pointer to a variable that is set to the handle of the back buffer resource.</param>
896-
inline void get_current_back_buffer(resource *out_handle) { get_back_buffer(get_current_back_buffer_index(), out_handle); }
897-
891+
virtual resource get_back_buffer(uint32_t index) = 0;
898892
/// <summary>
899893
/// Gets the number of back buffer resources in this swap chain.
900894
/// </summary>
901895
virtual uint32_t get_back_buffer_count() const = 0;
902896

897+
/// <summary>
898+
/// Gets the current back buffer resource.
899+
/// </summary>
900+
/// <param name="out_handle">Pointer to a variable that is set to the handle of the back buffer resource.</param>
901+
inline resource get_current_back_buffer() { return get_back_buffer(get_current_back_buffer_index()); }
903902
/// <summary>
904903
/// Gets the index of the back buffer resource that can currently be rendered into.
905904
/// </summary>

source/d3d10/d3d10_impl_swapchain.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@ reshade::d3d10::swapchain_impl::~swapchain_impl()
3838
on_reset();
3939
}
4040

41-
void reshade::d3d10::swapchain_impl::get_back_buffer(uint32_t index, api::resource *out)
41+
reshade::api::resource reshade::d3d10::swapchain_impl::get_back_buffer(uint32_t index)
4242
{
4343
assert(index == 0);
4444

45-
*out = { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
45+
return { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
4646
}
47-
void reshade::d3d10::swapchain_impl::get_back_buffer_resolved(uint32_t index, api::resource *out)
47+
reshade::api::resource reshade::d3d10::swapchain_impl::get_back_buffer_resolved(uint32_t index)
4848
{
4949
assert(index == 0);
5050

51-
*out = { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
51+
return { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
5252
}
5353

5454
bool reshade::d3d10::swapchain_impl::on_init()
@@ -201,7 +201,7 @@ bool reshade::d3d10::swapchain_impl::on_layer_submit(UINT eye, ID3D10Texture2D *
201201
{
202202
on_reset();
203203

204-
source_desc.Width = target_width;
204+
source_desc.Width = target_width;
205205
source_desc.Height = region_height;
206206
source_desc.MipLevels = 1;
207207
source_desc.ArraySize = 1;

source/d3d10/d3d10_impl_swapchain.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@ namespace reshade::d3d10
1818
swapchain_impl(device_impl *device, IDXGISwapChain *swapchain);
1919
~swapchain_impl();
2020

21-
void get_back_buffer(uint32_t index, api::resource *out) final;
22-
void get_back_buffer_resolved(uint32_t index, api::resource *out) final;
21+
api::resource get_back_buffer(uint32_t index) final;
22+
api::resource get_back_buffer_resolved(uint32_t index) final;
2323

2424
uint32_t get_back_buffer_count() const final { return 1; }
2525
uint32_t get_current_back_buffer_index() const final { return 0; }
2626

2727
bool on_init();
2828
void on_reset();
29+
2930
void on_present();
3031
bool on_layer_submit(UINT eye, ID3D10Texture2D *source, const float bounds[4], ID3D10Texture2D **target);
3132

source/d3d11/d3d11_impl_swapchain.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ reshade::d3d11::swapchain_impl::~swapchain_impl()
3939
on_reset();
4040
}
4141

42-
void reshade::d3d11::swapchain_impl::get_back_buffer(uint32_t index, api::resource *out)
42+
reshade::api::resource reshade::d3d11::swapchain_impl::get_back_buffer(uint32_t index)
4343
{
4444
assert(index == 0);
4545

46-
*out = { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
46+
return { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
4747
}
48-
void reshade::d3d11::swapchain_impl::get_back_buffer_resolved(uint32_t index, api::resource *out)
48+
reshade::api::resource reshade::d3d11::swapchain_impl::get_back_buffer_resolved(uint32_t index)
4949
{
5050
assert(index == 0);
5151

52-
*out = { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
52+
return { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
5353
}
5454

5555
bool reshade::d3d11::swapchain_impl::on_init()

source/d3d11/d3d11_impl_swapchain.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ namespace reshade::d3d11
1919
swapchain_impl(device_impl *device, device_context_impl *immediate_context, IDXGISwapChain *swapchain);
2020
~swapchain_impl();
2121

22-
void get_back_buffer(uint32_t index, api::resource *out) final;
23-
void get_back_buffer_resolved(uint32_t index, api::resource *out) final;
22+
api::resource get_back_buffer(uint32_t index) final;
23+
api::resource get_back_buffer_resolved(uint32_t index) final;
2424

2525
uint32_t get_back_buffer_count() const final { return 1; }
2626
uint32_t get_current_back_buffer_index() const final { return 0; }
2727

2828
bool on_init();
2929
void on_reset();
30+
3031
void on_present();
3132
bool on_layer_submit(UINT eye, ID3D11Texture2D *source, const float bounds[4], ID3D11Texture2D **target);
3233

source/d3d12/d3d12_impl_swapchain.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ reshade::d3d12::swapchain_impl::~swapchain_impl()
4646
on_reset();
4747
}
4848

49-
void reshade::d3d12::swapchain_impl::get_back_buffer(uint32_t index, api::resource *out)
49+
reshade::api::resource reshade::d3d12::swapchain_impl::get_back_buffer(uint32_t index)
5050
{
51-
*out = { reinterpret_cast<uintptr_t>(_backbuffers[index].get()) };
51+
return { reinterpret_cast<uintptr_t>(_backbuffers[index].get()) };
5252
}
53-
void reshade::d3d12::swapchain_impl::get_back_buffer_resolved(uint32_t index, api::resource *out)
53+
reshade::api::resource reshade::d3d12::swapchain_impl::get_back_buffer_resolved(uint32_t index)
5454
{
55-
*out = { reinterpret_cast<uintptr_t>(_backbuffers[index].get()) };
55+
return { reinterpret_cast<uintptr_t>(_backbuffers[index].get()) };
5656
}
5757

5858
uint32_t reshade::d3d12::swapchain_impl::get_back_buffer_count() const

source/d3d12/d3d12_impl_swapchain.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ namespace reshade::d3d12
1818
swapchain_impl(device_impl *device, command_queue_impl *queue, IDXGISwapChain3 *swapchain);
1919
~swapchain_impl();
2020

21-
void get_back_buffer(uint32_t index, api::resource *out) final;
22-
void get_back_buffer_resolved(uint32_t index, api::resource *out) final;
21+
api::resource get_back_buffer(uint32_t index) final;
22+
api::resource get_back_buffer_resolved(uint32_t index) final;
2323

2424
uint32_t get_back_buffer_count() const final;
2525
uint32_t get_current_back_buffer_index() const final;

source/d3d9/d3d9_impl_swapchain.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ reshade::d3d9::swapchain_impl::~swapchain_impl()
3636
on_reset();
3737
}
3838

39-
void reshade::d3d9::swapchain_impl::get_back_buffer(uint32_t index, api::resource *out)
39+
reshade::api::resource reshade::d3d9::swapchain_impl::get_back_buffer(uint32_t index)
4040
{
4141
assert(index == 0);
4242

43-
*out = { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
43+
return { reinterpret_cast<uintptr_t>(_backbuffer.get()) };
4444
}
45-
void reshade::d3d9::swapchain_impl::get_back_buffer_resolved(uint32_t index, api::resource *out)
45+
reshade::api::resource reshade::d3d9::swapchain_impl::get_back_buffer_resolved(uint32_t index)
4646
{
4747
assert(index == 0);
4848

49-
*out = { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
49+
return { reinterpret_cast<uintptr_t>(_backbuffer_resolved.get()) };
5050
}
5151

5252
bool reshade::d3d9::swapchain_impl::on_init(const D3DPRESENT_PARAMETERS &pp)

source/d3d9/d3d9_impl_swapchain.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@ namespace reshade::d3d9
1818
swapchain_impl(device_impl *device, IDirect3DSwapChain9 *swapchain);
1919
~swapchain_impl();
2020

21-
void get_back_buffer(uint32_t index, api::resource *out) final;
22-
void get_back_buffer_resolved(uint32_t index, api::resource *out) final;
21+
api::resource get_back_buffer(uint32_t index) final;
22+
api::resource get_back_buffer_resolved(uint32_t index) final;
2323

2424
uint32_t get_back_buffer_count() const final { return 1; }
2525
uint32_t get_current_back_buffer_index() const final { return 0; }
2626

2727
bool on_init(const D3DPRESENT_PARAMETERS &pp);
2828
void on_reset();
29+
2930
void on_present();
3031

3132
private:

source/opengl/opengl_impl_swapchain.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,20 @@ reshade::opengl::swapchain_impl::~swapchain_impl()
4242
on_reset();
4343
}
4444

45-
void reshade::opengl::swapchain_impl::get_back_buffer(uint32_t index, api::resource *out)
45+
reshade::api::resource reshade::opengl::swapchain_impl::get_back_buffer(uint32_t index)
4646
{
4747
assert(index == 0);
4848

49-
*out = make_resource_handle(GL_FRAMEBUFFER_DEFAULT, GL_BACK);
49+
if (_is_vr)
50+
return make_resource_handle(GL_RENDERBUFFER, _rbo);
51+
else
52+
return make_resource_handle(GL_FRAMEBUFFER_DEFAULT, GL_BACK);
5053
}
51-
void reshade::opengl::swapchain_impl::get_back_buffer_resolved(uint32_t index, api::resource *out)
54+
reshade::api::resource reshade::opengl::swapchain_impl::get_back_buffer_resolved(uint32_t index)
5255
{
5356
assert(index == 0);
5457

55-
*out = make_resource_handle(GL_RENDERBUFFER, _rbo);
58+
return make_resource_handle(GL_RENDERBUFFER, _rbo);
5659
}
5760

5861
bool reshade::opengl::swapchain_impl::on_init(HWND hwnd, unsigned int width, unsigned int height)

0 commit comments

Comments
 (0)