diff -r 1d4f1d700cdc -r b8871dd33ec4 rust/lib-hedgewars-engine/src/instance.rs --- a/rust/lib-hedgewars-engine/src/instance.rs Sun Nov 25 00:23:32 2018 +0100 +++ b/rust/lib-hedgewars-engine/src/instance.rs Sun Nov 25 05:52:06 2018 +0300 @@ -3,12 +3,29 @@ UnorderedEngineMessage::*, UnsyncedEngineMessage::*, * }; +use gfx::{ + format::{R8_G8_B8_A8, D24, Unorm} +}; +use gfx_device_gl as gfx_gl; +use self::gfx_gl::{ + Resources, + CommandBuffer +}; + use super::{ipc::IPC, world::World}; -#[repr(C)] +pub struct EngineGlContext { + pub device: gfx_gl::Device, + pub factory: gfx_gl::Factory, + pub render_target: gfx::handle::RenderTargetView, + pub depth_buffer: gfx::handle::DepthStencilView, + pub command_buffer: gfx::Encoder +} + pub struct EngineInstance { pub world: World, pub ipc: IPC, + pub gl_context: Option } impl EngineInstance { @@ -17,18 +34,19 @@ Self { world, ipc: IPC::new(), + gl_context: None } } pub fn render( &self, - context: &mut gfx::Encoder, - target: &gfx::handle::RenderTargetView, + command_buffer: &mut gfx::Encoder, + render_target: &gfx::handle::RenderTargetView, ) where R: gfx::Resources, C: gfx::CommandBuffer, { - context.clear(target, [0.0, 0.5, 0.0, 1.0]); + command_buffer.clear(render_target, [0.0, 0.5, 0.0, 1.0]); } fn process_unordered_message(&mut self, message: &UnorderedEngineMessage) {