scene: init returns the initial view transformation
This commit is contained in:
parent
7455eb7b30
commit
f7f109df28
@ -16,13 +16,21 @@ namespace demo {
|
||||
draw_cube(writer, trans * translate(particle.position) * scale(1.f), color);
|
||||
}
|
||||
|
||||
void ballistics::init()
|
||||
mat4x4 ballistics::init()
|
||||
{
|
||||
current_projectile_type = projectile_type::ARTILLERY;
|
||||
|
||||
for (int i = 0; i < max_projectiles; i++) {
|
||||
projectiles[i].type = projectile_type::NONE;
|
||||
}
|
||||
|
||||
mat4x4 view_trans
|
||||
= translate(vec3(-0.5, 0.5, 0.75))
|
||||
* rotate_x(pi / 4)
|
||||
* rotate_y(pi / 4)
|
||||
* scale(vec3(-1, -1, 1));
|
||||
|
||||
return view_trans;
|
||||
}
|
||||
|
||||
void ballistics::a()
|
||||
|
@ -29,7 +29,7 @@ namespace demo {
|
||||
projectile_type current_projectile_type;
|
||||
int32_t tick;
|
||||
|
||||
void init() override;
|
||||
mat4x4 init() override;
|
||||
void a() override;
|
||||
void x() override;
|
||||
void update() override;
|
||||
|
@ -6,7 +6,7 @@
|
||||
namespace demo {
|
||||
|
||||
struct scene {
|
||||
virtual void init() = 0;
|
||||
virtual mat4x4 init() = 0;
|
||||
virtual void a() {}
|
||||
virtual void b() {}
|
||||
virtual void x() {}
|
||||
|
@ -104,7 +104,7 @@ namespace graphics {
|
||||
core_init();
|
||||
framebuffer::scaler_init();
|
||||
|
||||
current_scene->init();
|
||||
view_trans = current_scene->init();
|
||||
|
||||
// read
|
||||
while (spg_status::vsync(holly.SPG_STATUS));
|
||||
@ -144,17 +144,6 @@ namespace graphics {
|
||||
1,
|
||||
texture_memory_alloc.region_array.start,
|
||||
texture_memory_alloc.object_list.start);
|
||||
|
||||
//vec3 t = {framebuffer::framebuffer.px_width / 2.f, framebuffer::framebuffer.px_height / 2.f, 0};
|
||||
float s = framebuffer::framebuffer.px_height / 3.f;
|
||||
|
||||
view_trans
|
||||
= scale(vec3(s, s, 1))
|
||||
* translate(vec3(0, 0, 10))
|
||||
* rotate_x(pi / 4)
|
||||
* rotate_y(pi / 4)
|
||||
* scale(vec3(-1, -1, 1));
|
||||
view_trans = view_trans * translate(vec3(0, 0, -0.9));
|
||||
}
|
||||
|
||||
void input_events()
|
||||
|
@ -33,10 +33,11 @@ static inline vec3 screen_transform(const vec3& v)
|
||||
{
|
||||
float tx = framebuffer::framebuffer.px_width / 2.f;
|
||||
float ty = framebuffer::framebuffer.px_height / 2.f;
|
||||
float s = framebuffer::framebuffer.px_height / 2.f;
|
||||
|
||||
float z = _fsrra(v.z - 9);
|
||||
float z = _fsrra(v.z);
|
||||
float z2 = z * z;
|
||||
return {v.x * z2 + tx , v.y * z2 + ty, z2};
|
||||
return {(v.x) * s * z2 + tx , (v.y) * s * z2 + ty , z2};
|
||||
}
|
||||
|
||||
static inline void draw_grid(ta_parameter_writer& writer,
|
||||
|
Loading…
x
Reference in New Issue
Block a user