Merge pull request #10798 from vonchenplus/draw_texture_scale

video_core: drawtexture support upscale
This commit is contained in:
liamwhite 2023-06-18 09:42:41 -04:00 committed by GitHub
commit 66b8042b59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "common/settings.h"
#include "video_core/dirty_flags.h" #include "video_core/dirty_flags.h"
#include "video_core/engines/draw_manager.h" #include "video_core/engines/draw_manager.h"
#include "video_core/rasterizer_interface.h" #include "video_core/rasterizer_interface.h"
@ -195,8 +196,12 @@ void DrawManager::DrawTexture() {
if (lower_left) { if (lower_left) {
draw_texture_state.dst_y0 -= dst_height; draw_texture_state.dst_y0 -= dst_height;
} }
draw_texture_state.dst_x1 = draw_texture_state.dst_x0 + dst_width; draw_texture_state.dst_x1 =
draw_texture_state.dst_y1 = draw_texture_state.dst_y0 + dst_height; draw_texture_state.dst_x0 +
static_cast<f32>(Settings::values.resolution_info.ScaleUp(static_cast<u32>(dst_width)));
draw_texture_state.dst_y1 =
draw_texture_state.dst_y0 +
static_cast<f32>(Settings::values.resolution_info.ScaleUp(static_cast<u32>(dst_height)));
draw_texture_state.src_x0 = static_cast<float>(regs.draw_texture.src_x0) / 4096.f; draw_texture_state.src_x0 = static_cast<float>(regs.draw_texture.src_x0) / 4096.f;
draw_texture_state.src_y0 = static_cast<float>(regs.draw_texture.src_y0) / 4096.f; draw_texture_state.src_y0 = static_cast<float>(regs.draw_texture.src_y0) / 4096.f;
draw_texture_state.src_x1 = draw_texture_state.src_x1 =
@ -207,7 +212,6 @@ void DrawManager::DrawTexture() {
draw_texture_state.src_y0; draw_texture_state.src_y0;
draw_texture_state.src_sampler = regs.draw_texture.src_sampler; draw_texture_state.src_sampler = regs.draw_texture.src_sampler;
draw_texture_state.src_texture = regs.draw_texture.src_texture; draw_texture_state.src_texture = regs.draw_texture.src_texture;
maxwell3d->rasterizer->DrawTexture(); maxwell3d->rasterizer->DrawTexture();
} }