make example platform-independent (ish)
This commit is contained in:
parent
f087efefe2
commit
ff5b7fee79
5
.github/workflows/rust.yml
vendored
5
.github/workflows/rust.yml
vendored
|
@ -11,6 +11,11 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
- name: install XCB dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install libx11-xcb-dev libxcb-dri2-0-dev
|
||||||
|
if: contains(matrix.os, 'ubuntu')
|
||||||
- name: install rust stable
|
- name: install rust stable
|
||||||
uses: actions-rs/toolchain@v1
|
uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
fn main() {
|
|
||||||
let window_open_options = baseview::WindowOpenOptions {
|
|
||||||
title: "baseview",
|
|
||||||
width: 512,
|
|
||||||
height: 512,
|
|
||||||
parent: baseview::Parent::None,
|
|
||||||
};
|
|
||||||
|
|
||||||
baseview::Window::open(window_open_options);
|
|
||||||
}
|
|
25
examples/open_window.rs
Normal file
25
examples/open_window.rs
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
use std::ptr::null_mut;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let window_open_options = baseview::WindowOpenOptions {
|
||||||
|
title: "baseview",
|
||||||
|
width: 512,
|
||||||
|
height: 512,
|
||||||
|
parent: baseview::Parent::None,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")] {
|
||||||
|
baseview::Window::open(window_open_options);
|
||||||
|
}
|
||||||
|
#[cfg(target_os = "windows")] {
|
||||||
|
baseview::create_window(window_open_options);
|
||||||
|
loop {
|
||||||
|
if !baseview::handle_msg(null_mut()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(target_os = "linux")] {
|
||||||
|
baseview::run(window_open_options);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,21 +0,0 @@
|
||||||
use std::ptr::null_mut;
|
|
||||||
|
|
||||||
use baseview::Parent;
|
|
||||||
use baseview::{create_window, handle_msg, WindowOpenOptions};
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let window = WindowOpenOptions {
|
|
||||||
title: "Baseview",
|
|
||||||
width: 800,
|
|
||||||
height: 400,
|
|
||||||
parent: Parent::None,
|
|
||||||
};
|
|
||||||
|
|
||||||
create_window(window);
|
|
||||||
|
|
||||||
loop {
|
|
||||||
if !handle_msg(null_mut()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
fn main() {
|
|
||||||
let window_open_options = baseview::WindowOpenOptions {
|
|
||||||
title: "baseview",
|
|
||||||
width: 512,
|
|
||||||
height: 512,
|
|
||||||
parent: baseview::Parent::None,
|
|
||||||
};
|
|
||||||
|
|
||||||
baseview::run(window_open_options);
|
|
||||||
}
|
|
|
@ -113,6 +113,7 @@ pub fn run(options: WindowOpenOptions) {
|
||||||
|
|
||||||
// Figure out the DPI scaling by opening a new temporary connection and asking XCB
|
// Figure out the DPI scaling by opening a new temporary connection and asking XCB
|
||||||
// TODO: currently returning (96, 96) on my system, even though I have 4k screens. Problem with my setup perhaps?
|
// TODO: currently returning (96, 96) on my system, even though I have 4k screens. Problem with my setup perhaps?
|
||||||
|
#[allow(dead_code)]
|
||||||
pub fn get_scaling() -> (u32, u32) {
|
pub fn get_scaling() -> (u32, u32) {
|
||||||
let (conn, screen_num) = xcb::Connection::connect_with_xlib_display().unwrap();
|
let (conn, screen_num) = xcb::Connection::connect_with_xlib_display().unwrap();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue