mirror of
https://github.com/gopher64/gopher64.git
synced 2026-07-11 01:25:20 +02:00
show controller during config (#904)
This commit is contained in:
Generated
+19
@@ -2254,6 +2254,7 @@ dependencies = [
|
||||
"regex",
|
||||
"reqwest",
|
||||
"rfd",
|
||||
"sdl3-image-sys",
|
||||
"sdl3-sys",
|
||||
"sdl3-ttf-sys",
|
||||
"semver",
|
||||
@@ -5409,6 +5410,24 @@ dependencies = [
|
||||
"tiny-skia 0.11.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sdl3-image-src"
|
||||
version = "3.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe273101c7dab94551183212eee9adef1a7bf274d407f0b7bfe72482960ab25c"
|
||||
|
||||
[[package]]
|
||||
name = "sdl3-image-sys"
|
||||
version = "0.6.3+SDL-image-3.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bf532fab7cf015de8c55eec6c82db65a964c8874a22c88cead952813db410f90"
|
||||
dependencies = [
|
||||
"cmake",
|
||||
"rpkg-config",
|
||||
"sdl3-image-src",
|
||||
"sdl3-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sdl3-src"
|
||||
version = "3.4.8"
|
||||
|
||||
@@ -23,6 +23,7 @@ open = "5.3"
|
||||
sha2 = "0.11"
|
||||
sdl3-sys = { version = "0.6", features = ["build-from-source-static"] }
|
||||
sdl3-ttf-sys = { version = "0.6", features = ["build-static-vendored", "no-sdlttf-harfbuzz", "no-sdlttf-plutosvg"] }
|
||||
sdl3-image-sys = { version = "0.6", features = ["build-static-vendored"] }
|
||||
tokio = {version = "1.46", features = ["rt-multi-thread", "macros", "fs", "process"] }
|
||||
spin_sleep = "1.3"
|
||||
encoding_rs = "0.8"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
+21
-1
@@ -596,6 +596,7 @@ fn close_input_profile_window(
|
||||
renderer: *mut sdl3_sys::render::SDL_Renderer,
|
||||
text_engine: *mut sdl3_ttf_sys::ttf::TTF_TextEngine,
|
||||
font: *mut sdl3_ttf_sys::ttf::TTF_Font,
|
||||
texture: *mut sdl3_sys::render::SDL_Texture,
|
||||
window: *mut sdl3_sys::video::SDL_Window,
|
||||
) {
|
||||
for joystick in open_joysticks {
|
||||
@@ -606,6 +607,7 @@ fn close_input_profile_window(
|
||||
}
|
||||
|
||||
unsafe {
|
||||
sdl3_sys::render::SDL_DestroyTexture(texture);
|
||||
sdl3_ttf_sys::ttf::TTF_CloseFont(font);
|
||||
sdl3_ttf_sys::ttf::TTF_DestroyRendererTextEngine(text_engine);
|
||||
sdl3_sys::render::SDL_DestroyRenderer(renderer);
|
||||
@@ -726,6 +728,15 @@ pub fn configure_input_profile(
|
||||
initial_state: 0,
|
||||
};
|
||||
|
||||
let image_bytes = include_bytes!("../../data/controller.png");
|
||||
let image = unsafe {
|
||||
sdl3_image_sys::image::IMG_LoadPNG_IO(sdl3_sys::everything::SDL_IOFromConstMem(
|
||||
image_bytes.as_ptr() as *const std::ffi::c_void,
|
||||
image_bytes.len(),
|
||||
))
|
||||
};
|
||||
let image_texture = unsafe { sdl3_sys::render::SDL_CreateTextureFromSurface(renderer, image) };
|
||||
unsafe { sdl3_sys::surface::SDL_DestroySurface(image) };
|
||||
let text_engine = unsafe { sdl3_ttf_sys::ttf::TTF_CreateRendererTextEngine(renderer) };
|
||||
let font = unsafe {
|
||||
let font_bytes = include_bytes!("../../data/RobotoMono-Regular.ttf");
|
||||
@@ -753,6 +764,7 @@ pub fn configure_input_profile(
|
||||
ui::video::draw_text(
|
||||
format!("Select binding for: {key}").as_str(),
|
||||
renderer,
|
||||
image_texture,
|
||||
text_engine,
|
||||
font,
|
||||
);
|
||||
@@ -765,6 +777,7 @@ pub fn configure_input_profile(
|
||||
renderer,
|
||||
text_engine,
|
||||
font,
|
||||
image_texture,
|
||||
window,
|
||||
);
|
||||
return;
|
||||
@@ -869,7 +882,13 @@ pub fn configure_input_profile(
|
||||
}
|
||||
}
|
||||
}
|
||||
ui::video::draw_text("Binding set, please wait...", renderer, text_engine, font);
|
||||
ui::video::draw_text(
|
||||
"Binding set, please wait...",
|
||||
renderer,
|
||||
image_texture,
|
||||
text_engine,
|
||||
font,
|
||||
);
|
||||
std::thread::sleep(std::time::Duration::from_millis(500));
|
||||
}
|
||||
|
||||
@@ -879,6 +898,7 @@ pub fn configure_input_profile(
|
||||
renderer,
|
||||
text_engine,
|
||||
font,
|
||||
image_texture,
|
||||
window,
|
||||
);
|
||||
|
||||
|
||||
+13
-1
@@ -261,6 +261,7 @@ pub fn onscreen_message(message: &str, milliseconds: MESSAGE_LENGTH) {
|
||||
pub fn draw_text(
|
||||
text: &str,
|
||||
renderer: *mut sdl3_sys::render::SDL_Renderer,
|
||||
image_texture: *mut sdl3_sys::render::SDL_Texture,
|
||||
text_engine: *mut sdl3_ttf_sys::ttf::TTF_TextEngine,
|
||||
font: *mut sdl3_ttf_sys::ttf::TTF_Font,
|
||||
) {
|
||||
@@ -272,7 +273,18 @@ pub fn draw_text(
|
||||
let ttf_text = sdl3_ttf_sys::ttf::TTF_CreateText(text_engine, font, c_text.as_ptr(), 0);
|
||||
|
||||
sdl3_sys::everything::SDL_RenderClear(renderer);
|
||||
sdl3_ttf_sys::ttf::TTF_DrawRendererText(ttf_text, 20.0, h as f32 / 2.0);
|
||||
let rect = sdl3_sys::rect::SDL_FRect {
|
||||
x: 0.0,
|
||||
y: 0.0,
|
||||
w: w as f32,
|
||||
h: (h - sdl3_ttf_sys::ttf::TTF_GetFontHeight(font)) as f32,
|
||||
};
|
||||
sdl3_sys::render::SDL_RenderTexture(renderer, image_texture, std::ptr::null(), &rect);
|
||||
sdl3_ttf_sys::ttf::TTF_DrawRendererText(
|
||||
ttf_text,
|
||||
20.0,
|
||||
(h - sdl3_ttf_sys::ttf::TTF_GetFontHeight(font)) as f32,
|
||||
);
|
||||
sdl3_sys::render::SDL_RenderPresent(renderer);
|
||||
sdl3_ttf_sys::ttf::TTF_DestroyText(ttf_text);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user