Fix pixel pitch handling for DXGI_FORMAT_R16G16B16A16_FLOAT (#605)
This commit is contained in:
parent
bb092c0723
commit
1e037db7bd
3 changed files with 11 additions and 5 deletions
|
|
@ -131,6 +131,11 @@ public:
|
|||
} D3DKMT_SCHEDULINGPRIORITYCLASS;
|
||||
|
||||
typedef NTSTATUS WINAPI (*PD3DKMTSetProcessSchedulingPriorityClass)(HANDLE, D3DKMT_SCHEDULINGPRIORITYCLASS);
|
||||
|
||||
protected:
|
||||
int get_pixel_pitch() {
|
||||
return (format == DXGI_FORMAT_R16G16B16A16_FLOAT) ? 8 : 4;
|
||||
}
|
||||
};
|
||||
|
||||
class display_ram_t : public display_base_t {
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ capture_e display_ram_t::snapshot(::platf::img_t *img_base, std::chrono::millise
|
|||
std::shared_ptr<platf::img_t> display_ram_t::alloc_img() {
|
||||
auto img = std::make_shared<img_t>();
|
||||
|
||||
img->pixel_pitch = 4;
|
||||
img->pixel_pitch = get_pixel_pitch();
|
||||
img->row_pitch = img_info.RowPitch;
|
||||
img->width = width;
|
||||
img->height = height;
|
||||
|
|
|
|||
|
|
@ -757,7 +757,7 @@ int display_vram_t::init(int framerate, const std::string &display_name) {
|
|||
std::shared_ptr<platf::img_t> display_vram_t::alloc_img() {
|
||||
auto img = std::make_shared<img_d3d_t>();
|
||||
|
||||
img->pixel_pitch = 4;
|
||||
img->pixel_pitch = get_pixel_pitch();
|
||||
img->row_pitch = img->pixel_pitch * width;
|
||||
img->width = width;
|
||||
img->height = height;
|
||||
|
|
@ -802,13 +802,14 @@ int display_vram_t::dummy_img(platf::img_t *img_base) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
img->row_pitch = width * 4;
|
||||
auto dummy_data = std::make_unique<int[]>(width * height);
|
||||
img->pixel_pitch = get_pixel_pitch();
|
||||
img->row_pitch = img->pixel_pitch * width;
|
||||
auto dummy_data = std::make_unique<uint8_t[]>(img->row_pitch * height);
|
||||
D3D11_SUBRESOURCE_DATA data {
|
||||
dummy_data.get(),
|
||||
(UINT)img->row_pitch
|
||||
};
|
||||
std::fill_n(dummy_data.get(), width * height, 0);
|
||||
std::fill_n(dummy_data.get(), img->row_pitch * height, 0);
|
||||
|
||||
D3D11_TEXTURE2D_DESC t {};
|
||||
t.Width = width;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue