lr: crosshair not transparent with vk. Mazan can be played with gamepad

Use transparent quad pipeline to draw crosshairs and vmus
Allow mazan and touchscreen games (manic panic, tduno, ...) to be played
with a gamepad.
This commit is contained in:
Flyinghead 2023-04-15 15:43:03 +02:00
parent 210100a108
commit fb4e653269
3 changed files with 6 additions and 2 deletions

View File

@ -309,11 +309,13 @@ bool VulkanContext::init(retro_hw_render_interface_vulkan *retro_render_if)
shaderManager = std::make_unique<ShaderManager>();
quadPipeline = std::make_unique<QuadPipeline>(true, false);
quadPipelineWithAlpha = std::make_unique<QuadPipeline>(false, false);
quadDrawer = std::make_unique<QuadDrawer>();
quadPipeline->Init(shaderManager.get(), *renderPass, 0);
quadPipelineWithAlpha->Init(shaderManager.get(), *renderPass, 0);
quadDrawer->Init(quadPipeline.get());
overlay = std::make_unique<VulkanOverlay>();
overlay->Init(quadPipeline.get());
overlay->Init(quadPipelineWithAlpha.get());
textureCache = std::make_unique<TextureCache>();
return true;
@ -428,6 +430,7 @@ void VulkanContext::term()
commandPool.Term();
quadDrawer.reset();
quadPipeline.reset();
quadPipelineWithAlpha.reset();
renderPass.reset();
shaderManager.reset();
ShaderCompiler::Term();

View File

@ -138,6 +138,7 @@ private:
vk::UniqueRenderPass renderPass;
std::unique_ptr<ShaderManager> shaderManager;
std::unique_ptr<QuadPipeline> quadPipeline;
std::unique_ptr<QuadPipeline> quadPipelineWithAlpha;
std::unique_ptr<QuadDrawer> quadDrawer;
std::vector<vk::UniqueFramebuffer> framebuffers;
std::vector<std::unique_ptr<FramebufferAttachment>> colorAttachments;

View File

@ -2650,7 +2650,7 @@ static void UpdateInputStateNaomi(u32 port)
// -- mouse, for rotary encoders
updateMouseState(port);
// lightgun with analog stick
if (settings.input.JammaSetup == JVS::LightGun || settings.input.JammaSetup == JVS::LightGunAsAnalog)
if (settings.input.lightgunGame)
{
updateLightgunCoordinatesFromAnalogStick(port);
if (input_cb(port, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_RELOAD))