Skip to content

Commit

Permalink
Triangle example using GLFW (#1258)
Browse files Browse the repository at this point in the history
* Triangle example using GLFW

* Move glfw triangle example to glfw folder. Strip drawing code.

* Minor fixes to glfw window example

* Minor fixes

* Update date on window example

* Bump gfx_window_glfw to 0.15

* Update dependency version

* Fix path
  • Loading branch information
Haggus authored and kvark committed May 11, 2017
1 parent 736c5f2 commit 82f2878
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 7 deletions.
5 changes: 1 addition & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ version = "0.6"
optional = true

[target.'cfg(unix)'.dependencies]
gfx_window_glfw = { path = "src/window/glfw", version = "0.14" }
gfx_window_glfw = { path = "src/window/glfw", version = "0.15" }
gfx_window_sdl = { path = "src/window/sdl", version = "0.6" }

[target.'cfg(windows)'.dependencies]
Expand Down Expand Up @@ -143,6 +143,3 @@ genmesh = "0.4"
noise = "0.1"
image = "0.13"
winit = "0.6"

[target.x86_64-unknown-linux-gnu.dev-dependencies]
glfw = "0.12"
11 changes: 8 additions & 3 deletions src/window/glfw/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2015 The Gfx-rs Developers.
# Copyright 2017 The Gfx-rs Developers.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -14,7 +14,7 @@

[package]
name = "gfx_window_glfw"
version = "0.14.0"
version = "0.15.0"
description = "GLFW window for gfx-rs"
homepage = "https://github.com/gfx-rs/gfx"
repository = "https://github.com/gfx-rs/gfx"
Expand All @@ -28,6 +28,11 @@ documentation = "https://docs.rs/gfx_window_glfw"
name = "gfx_window_glfw"

[dependencies]
glfw = "0.13"
glfw = "0.14"
gfx_core = { path = "../../core", version = "0.7" }
gfx_device_gl = { path = "../../backend/gl", version = "0.14" }

# Currently there is an issue with cargo and dev-dependencies:
# https://github.com/rust-lang/cargo/issues/860
# TODO: move gfx to [dev-dependencies] once it gets resolved.
gfx = { path = "../../render", version = "0.15" }
55 changes: 55 additions & 0 deletions src/window/glfw/examples/window.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Copyright 2017 The Gfx-rs Developers.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

extern crate gfx;
extern crate gfx_window_glfw;
extern crate glfw;

use glfw::{Action, Context, Key};

pub fn main() {
let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS)
.ok()
.expect("Failed to initialize GLFW");

glfw.window_hint(glfw::WindowHint::ContextVersion(3, 2));
glfw.window_hint(glfw::WindowHint::OpenGlForwardCompat(true));
glfw.window_hint(glfw::WindowHint::OpenGlProfile(glfw::OpenGlProfileHint::Core));

let (mut window, events) = glfw.create_window(1024, 768, "Window example", glfw::WindowMode::Windowed)
.expect("Failed to create GLFW window.");

window.set_key_polling(true);
window.set_close_polling(true);
window.make_current();
glfw.set_error_callback(glfw::FAIL_ON_ERRORS);
let (_, _, _, _) = gfx_window_glfw::init(&mut window);

//Note: actual drawing code is no different from the triangle example, or any other.

let mut running = true;
while running {
glfw.poll_events();

for (_, event) in glfw::flush_messages(&events) {
match event {
glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) => running = false,
glfw::WindowEvent::Close => running = false,
_ => {},
}
}

window.swap_buffers();
}
}

0 comments on commit 82f2878

Please sign in to comment.