Temporarily use push constants to set view/projection matrices
This commit is contained in:
@@ -14,6 +14,8 @@ layout(location = 0) out vec2 tex_coords;
|
|||||||
|
|
||||||
layout(push_constant) uniform PushConstants {
|
layout(push_constant) uniform PushConstants {
|
||||||
mat4 model;
|
mat4 model;
|
||||||
|
mat4 view;
|
||||||
|
mat4 projection;
|
||||||
} push;
|
} push;
|
||||||
|
|
||||||
out gl_PerVertex {
|
out gl_PerVertex {
|
||||||
@@ -21,6 +23,6 @@ out gl_PerVertex {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
gl_Position = ubo.projection * ubo.view * push.model * vec4(position, 1.0);
|
gl_Position = push.projection * push.view * push.model * vec4(position, 1.0);
|
||||||
tex_coords = uv;
|
tex_coords = uv;
|
||||||
}
|
}
|
||||||
@@ -68,6 +68,8 @@ impl Game for TestGame {
|
|||||||
|
|
||||||
renderer.game_data.line_push_constants.view = view.into();
|
renderer.game_data.line_push_constants.view = view.into();
|
||||||
renderer.game_data.line_push_constants.projection = proj.into();
|
renderer.game_data.line_push_constants.projection = proj.into();
|
||||||
|
renderer.game_data.push_constants.view = view.into();
|
||||||
|
renderer.game_data.push_constants.projection = proj.into();
|
||||||
|
|
||||||
self.input.frame_end();
|
self.input.frame_end();
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ impl VulkanRenderer {
|
|||||||
let mut data = GameData {
|
let mut data = GameData {
|
||||||
push_constants: PushConstants {
|
push_constants: PushConstants {
|
||||||
model: Matrix4::identity().into(),
|
model: Matrix4::identity().into(),
|
||||||
|
view: Matrix4::identity().into(),
|
||||||
|
projection: Matrix4::identity().into(),
|
||||||
},
|
},
|
||||||
line_push_constants: LinePushConstants {
|
line_push_constants: LinePushConstants {
|
||||||
model: Matrix4::identity().into(),
|
model: Matrix4::identity().into(),
|
||||||
@@ -469,6 +471,7 @@ pub fn start_event_loop(mut renderer: VulkanRenderer, mut game: Box<dyn Game>, e
|
|||||||
let ubo = game.update(&mut renderer);
|
let ubo = game.update(&mut renderer);
|
||||||
|
|
||||||
event_loop.run(move |event, _, control_flow| {
|
event_loop.run(move |event, _, control_flow| {
|
||||||
|
game.on_window_event(&event);
|
||||||
match event {
|
match event {
|
||||||
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } => {
|
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } => {
|
||||||
*control_flow = ControlFlow::Exit;
|
*control_flow = ControlFlow::Exit;
|
||||||
|
|||||||
Reference in New Issue
Block a user