mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 09:00:34 +00:00
backandfront projection option
This commit is contained in:
parent
a7ddaae7d4
commit
96c143da8e
@ -2164,6 +2164,10 @@ EX void show3D() {
|
||||
XLAT("Rotate the camera. Can be used to obtain a first person perspective, "
|
||||
"or third person perspective when combined with Y shift.")
|
||||
);
|
||||
dialog::extra_options = [] {
|
||||
dialog::addBoolItem(XLAT("render behind the camera"), vpconf.back_and_front, 'R');
|
||||
dialog::add_action([] { vpconf.back_and_front = !vpconf.back_and_front; });
|
||||
};
|
||||
});
|
||||
}
|
||||
if(GDIM == 2) {
|
||||
|
10
drawing.cpp
10
drawing.cpp
@ -2277,6 +2277,16 @@ EX void set_vr_sphere() {
|
||||
EX void draw_main() {
|
||||
DEBBI(DF_GRAPH, ("draw_main"));
|
||||
|
||||
if(pconf.back_and_front == 1 && vid.consider_shader_projection) {
|
||||
dynamicval<int> pa(pconf.back_and_front);
|
||||
pconf.back_and_front = 0;
|
||||
draw_main();
|
||||
pconf.back_and_front = 2;
|
||||
reset_projection();
|
||||
draw_main();
|
||||
return;
|
||||
}
|
||||
|
||||
set_vr_sphere();
|
||||
|
||||
if(sphere && GDIM == 3 && pmodel == mdPerspective && !stretch::in() && !ray::in_use) {
|
||||
|
@ -1040,6 +1040,8 @@ EX namespace models {
|
||||
param_f(p.xposition, sp+"xposition", 0);
|
||||
param_f(p.yposition, sp+"yposition", 0);
|
||||
|
||||
param_i(p.back_and_front, sp+"backandfront", 0);
|
||||
|
||||
addsaver(p.alpha, sp+"projection", 1);
|
||||
param_custom(p.alpha, sp+"projection", menuitem_projection_distance, 'p')
|
||||
->help_text = "projection distance|Gans Klein Poincare orthographic stereographic";
|
||||
|
@ -652,6 +652,8 @@ void display_data::set_projection(int ed, ld shift) {
|
||||
GLfloat sc = current_display->radius / (cd->ysize/2.);
|
||||
glhr::projection_multiply(glhr::frustum(cd->xsize / cd->ysize, 1));
|
||||
glhr::projection_multiply(glhr::scale(sc, -sc, -1));
|
||||
if(pconf.back_and_front)
|
||||
glhr::projection_multiply(glhr::scale(-1,-1,-1));
|
||||
u_alpha = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user