diff options
author | Ton Roosendaal <ton@blender.org> | 2008-01-07 21:03:41 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2008-01-07 21:03:41 +0300 |
commit | 1363134dee60ce96ab0772b72283fb405b6a75ed (patch) | |
tree | ece7c62b984d1ebfa8fd1fe1890332c75efa234d /source/blender/windowmanager/intern/wm_subwindow.c | |
parent | 1005d99ea5190f34c56f6b30d5eca6bf738a78e8 (diff) |
Whole lot of changes.... here a shortlist:
- removed editors/area and put this all in screen
- added first python calls (note, a new c file for scriptlinks)
- added view3d editor callbacks (no drawing yet)
- added files in editors/interface
(Cmake and Scons has to be fixed, help welcome!)
- now areas/headers are being converted on file read
- note: previously saved 2.50 files will crash!!! (.B.blend)
- area regions are being drawn, first handler for cursor added (on edge)
- window duplicate and scale works correct for screen subdiv
Todos for me:
- need to fix things in syntax (function names) a bit still
- more operators for screen
- define how Context will work... still unresolved when it gets set
- docs!
Reviews of code structure is welcome!
There are also more todos now for others, but it can wait a couple of days
Diffstat (limited to 'source/blender/windowmanager/intern/wm_subwindow.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_subwindow.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c index 2f4e90a2e71..23fbba7a054 100644 --- a/source/blender/windowmanager/intern/wm_subwindow.c +++ b/source/blender/windowmanager/intern/wm_subwindow.c @@ -135,7 +135,7 @@ void wm_subwindow_set(wmWindow *win, int swinid) win->curswin= swin; wm_subwindow_getsize(win, &width, &height); - + glViewport(swin->winrct.xmin, swin->winrct.ymin, width, height); glScissor(swin->winrct.xmin, swin->winrct.ymin, width, height); @@ -161,20 +161,22 @@ int wm_subwindow_open(wmWindow *win, rcti *winrct) freewinid= swin->swinid+1; win->curswin= swin= MEM_callocN(sizeof(wmSubWindow), "swinopen"); - + BLI_addtail(&win->subwindows, swin); + + printf("swin %d added\n", freewinid); swin->swinid= freewinid; swin->winrct= *winrct; Mat4One(swin->viewmat); Mat4One(swin->winmat); + /* and we appy it all right away */ + wm_subwindow_set(win, swin->swinid); + /* extra service */ wm_subwindow_getsize(win, &width, &height); wmOrtho2(win, -0.375, (float)width-0.375, -0.375, (float)height-0.375); wmLoadIdentity(win); - - /* and we appy it all right away */ - wm_subwindow_set(win, swin->swinid); return swin->swinid; } @@ -203,6 +205,8 @@ void wm_subwindow_position(wmWindow *win, int swinid, rcti *winrct) wmSubWindow *swin= swin_from_swinid(win, swinid); if(swin) { + int width, height; + swin->winrct= *winrct; /* CRITICAL, this clamping ensures that @@ -222,6 +226,11 @@ void wm_subwindow_position(wmWindow *win, int swinid, rcti *winrct) swin->winrct.xmax= win->sizex-1; if (swin->winrct.ymax >= win->sizey) swin->winrct.ymax= win->sizey-1; + + /* extra service */ + wm_subwindow_set(win, swinid); + wm_subwindow_getsize(win, &width, &height); + wmOrtho2(win, -0.375, (float)width-0.375, -0.375, (float)height-0.375); } else { printf("wm_subwindow_position: Internal error, bad winid: %d\n", swinid); @@ -231,10 +240,6 @@ void wm_subwindow_position(wmWindow *win, int swinid, rcti *winrct) /* ---------------- WM versions of OpenGL calls, using glBlah() syntax ------------------------ */ /* ----------------- exported in WM_api.h ------------------------------------------------------ */ -int glaGetOneInteger(int a) -{ - return 0; // XXX -} void wmLoadMatrix(wmWindow *win, float mat[][4]) { @@ -473,8 +478,8 @@ void myswapbuffers(void) /* XXX */ sa= G.curscreen->areabase.first; while(sa) { - if(sa->win_swap==WIN_BACK_OK) sa->win_swap= WIN_FRONT_OK; - if(sa->head_swap==WIN_BACK_OK) sa->head_swap= WIN_FRONT_OK; +// if(sa->win_swap==WIN_BACK_OK) sa->win_swap= WIN_FRONT_OK; +// if(sa->head_swap==WIN_BACK_OK) sa->head_swap= WIN_FRONT_OK; sa= sa->next; } |