forked from bartvdbraak/blender
- fixed bug in renderwin zoom function. You now can press 'Z' in a window
again, and move your mouse around to scan the image. MiddleMouse works too, but less intuitive - at some systems it is still slow, bad clipping code...
This commit is contained in:
parent
3d691c77cf
commit
8607322385
@ -203,8 +203,8 @@ static int renderwin_win_to_ndc(RenderWin *rw, int win_co[2], float ndc_r[2])
|
|||||||
|
|
||||||
window_get_size(rw->win, &w, &h);
|
window_get_size(rw->win, &w, &h);
|
||||||
|
|
||||||
ndc_r[0]= (float) ((win_co[0]*2)/(w-1) - 1.0);
|
ndc_r[0]= ((float)(win_co[0]*2)/(w-1) - 1.0);
|
||||||
ndc_r[1]= (float) ((win_co[1]*2)/(h-1) - 1.0);
|
ndc_r[1]= ((float)(win_co[1]*2)/(h-1) - 1.0);
|
||||||
|
|
||||||
return (fabs(ndc_r[0])<=1.0 && fabs(ndc_r[1])<=1.0);
|
return (fabs(ndc_r[0])<=1.0 && fabs(ndc_r[1])<=1.0);
|
||||||
}
|
}
|
||||||
@ -276,7 +276,7 @@ static void renderwin_draw(RenderWin *rw, int just_clear)
|
|||||||
|
|
||||||
static void renderwin_mouse_moved(RenderWin *rw)
|
static void renderwin_mouse_moved(RenderWin *rw)
|
||||||
{
|
{
|
||||||
if (rw->flags&RW_FLAGS_PIXEL_EXAMINING) {
|
if (rw->flags & RW_FLAGS_PIXEL_EXAMINING) {
|
||||||
int imgco[2];
|
int imgco[2];
|
||||||
char buf[64];
|
char buf[64];
|
||||||
|
|
||||||
@ -290,7 +290,8 @@ static void renderwin_mouse_moved(RenderWin *rw)
|
|||||||
renderwin_set_infotext(rw, NULL);
|
renderwin_set_infotext(rw, NULL);
|
||||||
renderwin_queue_redraw(rw);
|
renderwin_queue_redraw(rw);
|
||||||
}
|
}
|
||||||
} else if (rw->flags&RW_FLAGS_PANNING) {
|
}
|
||||||
|
else if (rw->flags & RW_FLAGS_PANNING) {
|
||||||
int delta_x= rw->lmouse[0] - rw->pan_mouse_start[0];
|
int delta_x= rw->lmouse[0] - rw->pan_mouse_start[0];
|
||||||
int delta_y= rw->lmouse[1] - rw->pan_mouse_start[1];
|
int delta_y= rw->lmouse[1] - rw->pan_mouse_start[1];
|
||||||
|
|
||||||
@ -300,7 +301,8 @@ static void renderwin_mouse_moved(RenderWin *rw)
|
|||||||
rw->zoomofs[1]= CLAMPIS(rw->zoomofs[1], -R.recty/2, R.recty/2);
|
rw->zoomofs[1]= CLAMPIS(rw->zoomofs[1], -R.recty/2, R.recty/2);
|
||||||
|
|
||||||
renderwin_queue_redraw(rw);
|
renderwin_queue_redraw(rw);
|
||||||
} else if (rw->flags&RW_FLAGS_OLDZOOM) {
|
}
|
||||||
|
else if (rw->flags & RW_FLAGS_OLDZOOM) {
|
||||||
float ndc[2];
|
float ndc[2];
|
||||||
int w, h;
|
int w, h;
|
||||||
|
|
||||||
@ -318,18 +320,20 @@ static void renderwin_mousebut_changed(RenderWin *rw)
|
|||||||
{
|
{
|
||||||
if (rw->mbut[0]) {
|
if (rw->mbut[0]) {
|
||||||
rw->flags|= RW_FLAGS_PIXEL_EXAMINING;
|
rw->flags|= RW_FLAGS_PIXEL_EXAMINING;
|
||||||
} else if (rw->mbut[1]) {
|
}
|
||||||
|
else if (rw->mbut[1]) {
|
||||||
rw->flags|= RW_FLAGS_PANNING;
|
rw->flags|= RW_FLAGS_PANNING;
|
||||||
rw->pan_mouse_start[0]= rw->lmouse[0];
|
rw->pan_mouse_start[0]= rw->lmouse[0];
|
||||||
rw->pan_mouse_start[1]= rw->lmouse[1];
|
rw->pan_mouse_start[1]= rw->lmouse[1];
|
||||||
rw->pan_ofs_start[0]= rw->zoomofs[0];
|
rw->pan_ofs_start[0]= rw->zoomofs[0];
|
||||||
rw->pan_ofs_start[1]= rw->zoomofs[1];
|
rw->pan_ofs_start[1]= rw->zoomofs[1];
|
||||||
} else {
|
}
|
||||||
if (rw->flags&RW_FLAGS_PANNING) {
|
else {
|
||||||
rw->flags&= ~RW_FLAGS_PANNING;
|
if (rw->flags & RW_FLAGS_PANNING) {
|
||||||
|
rw->flags &= ~RW_FLAGS_PANNING;
|
||||||
renderwin_queue_redraw(rw);
|
renderwin_queue_redraw(rw);
|
||||||
}
|
}
|
||||||
if (rw->flags&RW_FLAGS_PIXEL_EXAMINING) {
|
if (rw->flags & RW_FLAGS_PIXEL_EXAMINING) {
|
||||||
rw->flags&= ~RW_FLAGS_PIXEL_EXAMINING;
|
rw->flags&= ~RW_FLAGS_PIXEL_EXAMINING;
|
||||||
renderwin_set_infotext(rw, NULL);
|
renderwin_set_infotext(rw, NULL);
|
||||||
renderwin_queue_redraw(rw);
|
renderwin_queue_redraw(rw);
|
||||||
|
Loading…
Reference in New Issue
Block a user