Я пытаюсь запрограммировать игру на Rust, работая над учебником ggez . Вот мой код (src / main.rs):
use ggez::*;
// game state information goes here
struct State {}
/* Context connects all of the low-level bits for us; GameResult
tells us if our game is borken */
impl ggez::event::EventHandler for State {
fn update(&mut self, ctx: &mut Context) -> GameResult<()> {
Ok(())
}
fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
Ok(())
}
}
fn main() {
let state = &mut State { };
println!("Hello, world!");
let c = conf::Conf::new();
let (ref mut ctx, ref mut event_loop) = ContextBuilder::new("ggez-0", "My Name")
.conf(c)
.build()
.unwrap();
event::run(ctx, event_loop, state).unwrap();
}
Я ожидаю, что компилятор будет иметь следующий вывод:
Compiling ggez-0 v0.1.0 (/home/public/devel/rust/ggez-0)
warning: unused variable: `ctx`
--> src/main.rs:9:26
|
9 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> {
| ^^^ help: consider prefixing with an underscore: `_ctx`
|
= note: #[warn(unused_variables)] on by default
warning: unused variable: `ctx`
--> src/main.rs:13:24
|
13 | fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
| ^^^ help: consider prefixing with an underscore: `_ctx`
Finished dev [unoptimized + debuginfo] target(s) in 17.55s
Running `target/debug/ggez-0`
Hello, world!
с небольшим окном GUI.
Однако, когда я запускаю код, я получаю такой вывод:
Compiling ggez-0 v0.1.0 (/home/public/devel/rust/ggez-0)
warning: unused variable: `ctx`
--> src/main.rs:9:26
|
9 | fn update(&mut self, ctx: &mut Context) -> GameResult<()> {
| ^^^ help: consider prefixing with an underscore: `_ctx`
|
= note: #[warn(unused_variables)] on by default
warning: unused variable: `ctx`
--> src/main.rs:13:24
|
13 | fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
| ^^^ help: consider prefixing with an underscore: `_ctx`
Finished dev [unoptimized + debuginfo] target(s) in 17.55s
Running `target/debug/ggez-0`
Hello, world!
libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: WindowCreationError(Window(OsError("Failed to create input context: XError(XError { description: \"BadRequest (invalid request code or no such operation)\", error_code: 1, request_code: 155, minor_code: 1 })")))', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
и без окна графического интерфейса. Поиск гугл буквального текста сообщения об ошибке не помог, и я не очень понимаю, о чем оно говорит. Что здесь происходит?
Я использую версию 1.34.0 компилятора Rust, работающего на Ubuntu 18.10 по SSH с опцией -XC
, чтобы я мог получить GUI, и другие программы с графическим интерфейсом (такие как Firefox, Writer и т. Д.) Работают нормально для меня. Некоторые форумы рекомендовали использовать sudo apt install mesa-utils-extra
для подобных проблем, но это ничего не изменило для меня.