[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17949] branches/blender2.5/blender/source /blender: 2.5
Ton Roosendaal
ton at blender.org
Fri Dec 19 15:14:50 CET 2008
Revision: 17949
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17949
Author: ton
Date: 2008-12-19 15:14:43 +0100 (Fri, 19 Dec 2008)
Log Message:
-----------
2.5
All of the view3d drawing code is now 'Context' free.
The idea is:
- ED_region_do_draw() sets and freezes drawing context
- regiontype draw() callback then can pass on other relevant
context stuff as function args.
Also cleaned up the WM opengl wrappers, to mimic opengl state;
no reason to give window pointer anymore.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c
branches/blender2.5/blender/source/blender/editors/interface/view2d.c
branches/blender2.5/blender/source/blender/editors/screen/area.c
branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_view.c
branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_gesture.c
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_subwindow.c
branches/blender2.5/blender/source/blender/windowmanager/wm_subwindow.h
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2008-12-19 14:14:43 UTC (rev 17949)
@@ -37,6 +37,7 @@
struct wmWindow;
struct wmNotifier;
struct wmEvent;
+struct bContext;
struct SpaceType;
struct AreagionType;
struct uiBlock;
@@ -45,7 +46,7 @@
void ED_region_do_listen(ARegion *ar, struct wmNotifier *note);
void ED_region_do_draw(struct bContext *C, struct ARegion *ar);
void ED_region_exit(struct bContext *C, struct ARegion *ar);
-void ED_region_pixelspace(const struct bContext *C, struct ARegion *ar);
+void ED_region_pixelspace(struct ARegion *ar);
void ED_region_init(struct bContext *C, struct ARegion *ar);
void ED_region_tag_redraw(struct ARegion *ar);
@@ -53,7 +54,7 @@
void ED_spacetypes_init(void);
void ED_spacetypes_keymap(struct wmWindowManager *wm);
struct ARegionType *ED_regiontype_from_id(struct SpaceType *st, int regionid);
-int ED_area_header_standardbuttons(const bContext *C, struct uiBlock *block, int yco);
+int ED_area_header_standardbuttons(const struct bContext *C, struct uiBlock *block, int yco);
void ED_area_overdraw(struct bContext *C);
void ED_area_overdraw_flush(struct bContext *C);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -693,7 +693,7 @@
ED_region_init(C, ar);
/* get winmat now that we actually have the subwindow */
- wm_subwindow_set(window, ar->swinid);
+ wmSubWindowSet(window, ar->swinid);
wm_subwindow_getmatrix(window, ar->swinid, block->winmat);
/* notify change and redraw */
Modified: branches/blender2.5/blender/source/blender/editors/interface/view2d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -637,7 +637,6 @@
/* Set view matrices to use 'cur' rect as viewing frame for View2D drawing */
void UI_view2d_view_ortho(const bContext *C, View2D *v2d)
{
- wmWindow *window= CTX_wm_window(C);
rctf curmasked;
float xofs, yofs;
@@ -651,10 +650,10 @@
view2d_map_cur_using_mask(v2d, &curmasked);
/* set matrix on all appropriate axes */
- wmOrtho2(window, curmasked.xmin-xofs, curmasked.xmax-xofs, curmasked.ymin-yofs, curmasked.ymax-yofs);
+ wmOrtho2(curmasked.xmin-xofs, curmasked.xmax-xofs, curmasked.ymin-yofs, curmasked.ymax-yofs);
/* XXX is this necessary? */
- wmLoadIdentity(window);
+ wmLoadIdentity();
}
/* Set view matrices to only use one axis of 'cur' only
@@ -662,7 +661,6 @@
*/
void UI_view2d_view_orthoSpecial(const bContext *C, View2D *v2d, short xaxis)
{
- wmWindow *window= CTX_wm_window(C);
ARegion *ar= CTX_wm_region(C);
rctf curmasked;
float xofs, yofs;
@@ -678,19 +676,19 @@
/* only set matrix with 'cur' coordinates on relevant axes */
if (xaxis)
- wmOrtho2(window, curmasked.xmin-xofs, curmasked.xmax-xofs, -yofs, ar->winy-yofs);
+ wmOrtho2(curmasked.xmin-xofs, curmasked.xmax-xofs, -yofs, ar->winy-yofs);
else
- wmOrtho2(window, -xofs, ar->winx-xofs, curmasked.ymin-yofs, curmasked.ymax-yofs);
+ wmOrtho2(-xofs, ar->winx-xofs, curmasked.ymin-yofs, curmasked.ymax-yofs);
/* XXX is this necessary? */
- wmLoadIdentity(window);
+ wmLoadIdentity();
}
/* Restore view matrices after drawing */
void UI_view2d_view_restore(const bContext *C)
{
- ED_region_pixelspace(C, CTX_wm_region(C));
+ ED_region_pixelspace(CTX_wm_region(C));
}
/* *********************************************************************** */
Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -92,14 +92,13 @@
glDisable( GL_BLEND );
}
-void ED_region_pixelspace(const bContext *C, ARegion *ar)
+void ED_region_pixelspace(ARegion *ar)
{
- wmWindow *win= CTX_wm_window(C);
int width= ar->winrct.xmax-ar->winrct.xmin+1;
int height= ar->winrct.ymax-ar->winrct.ymin+1;
- wmOrtho2(win, -0.375, (float)width-0.375, -0.375, (float)height-0.375);
- wmLoadIdentity(win);
+ wmOrtho2(-0.375, (float)width-0.375, -0.375, (float)height-0.375);
+ wmLoadIdentity();
}
void ED_region_do_listen(ARegion *ar, wmNotifier *note)
@@ -149,7 +148,7 @@
ScrArea *sa;
/* Draw AZones, in screenspace */
- wm_subwindow_set(win, screen->mainwin);
+ wmSubWindowSet(win, screen->mainwin);
glEnable( GL_BLEND );
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
@@ -176,7 +175,8 @@
ScrArea *sa= CTX_wm_area(C);
ARegionType *at= ar->type;
- wm_subwindow_set(win, ar->swinid);
+ /* note; this sets state, so we can use wmOrtho and friends */
+ wmSubWindowSet(win, ar->swinid);
if(ar->swinid && at->draw) {
UI_SetTheme(sa);
@@ -201,7 +201,7 @@
region_draw_emboss(ar);
/* XXX test: add convention to end regions always in pixel space, for drawing of borders/gestures etc */
- ED_region_pixelspace(C, ar);
+ ED_region_pixelspace(ar);
ar->do_draw= 0;
}
Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -934,7 +934,7 @@
int dir = -1;
int dira = -1;
- wm_subwindow_set(win, win->screen->mainwin);
+ wmSubWindowSet(win, win->screen->mainwin);
for(sa= win->screen->areabase.first; sa; sa= sa->next) {
if (sa->flag & AREA_FLAG_DRAWJOINFROM) sa1 = sa;
Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -51,7 +51,6 @@
#include "DNA_userdef_types.h"
#include "BKE_bmfont.h"
-#include "BKE_context.h"
#include "BKE_displist.h"
#include "BKE_DerivedMesh.h"
#include "BKE_effect.h"
Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c 2008-12-19 12:55:50 UTC (rev 17948)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c 2008-12-19 14:14:43 UTC (rev 17949)
@@ -73,7 +73,6 @@
#include "BLI_rand.h"
#include "BKE_anim.h" //for the where_on_path function
-#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_constraint.h" // for the get_constraint_target function
#include "BKE_DerivedMesh.h"
@@ -662,7 +661,7 @@
return;
}
-static void drawlamp(const bContext *C, Scene *scene, View3D *v3d, Object *ob)
+static void drawlamp(Scene *scene, View3D *v3d, Object *ob)
{
Lamp *la;
float vec[3], lvec[3], vvec[3], circrad, x,y,z;
@@ -677,7 +676,7 @@
/* we first draw only the screen aligned & fixed scale stuff */
glPushMatrix();
- wmLoadMatrix(CTX_wm_window(C), v3d->viewmat);
+ wmLoadMatrix(v3d->viewmat);
/* lets calculate the scale: */
pixsize= v3d->persmat[0][3]*ob->obmat[3][0]+ v3d->persmat[1][3]*ob->obmat[3][1]+ v3d->persmat[2][3]*ob->obmat[3][2]+ v3d->persmat[3][3];
@@ -888,7 +887,7 @@
}
/* and back to viewspace */
- wmLoadMatrix(CTX_wm_window(C), v3d->viewmat);
+ wmLoadMatrix(v3d->viewmat);
VECCOPY(vec, ob->obmat[3]);
setlinestyle(0);
@@ -954,7 +953,7 @@
}
/* flag similar to draw_object() */
-static void drawcamera(const bContext *C, Scene *scene, View3D *v3d, Object *ob, int flag)
+static void drawcamera(Scene *scene, View3D *v3d, Object *ob, int flag)
{
/* a standing up pyramid with (0,0,0) as top */
Camera *cam;
@@ -1039,13 +1038,13 @@
if(flag==0) {
if(cam->flag & (CAM_SHOWLIMITS+CAM_SHOWMIST)) {
- wmLoadMatrix(CTX_wm_window(C), v3d->viewmat);
+ wmLoadMatrix(v3d->viewmat);
Mat4CpyMat4(vec, ob->obmat);
Mat4Ortho(vec);
- wmMultMatrix(CTX_wm_window(C), vec);
+ wmMultMatrix(vec);
MTC_Mat4SwapMat4(v3d->persmat, tmat);
- wmGetSingleMatrix(CTX_wm_window(C), v3d->persmat);
+ wmGetSingleMatrix(v3d->persmat);
if(cam->flag & CAM_SHOWLIMITS) {
draw_limit_line(cam->clipsta, cam->clipend, 0x77FFFF);
@@ -2827,7 +2826,7 @@
/* 5. start filling the arrays */
/* 6. draw the arrays */
/* 7. clean up */
-static void draw_new_particle_system(const bContext *C, View3D *v3d, Base *base, ParticleSystem *psys, int dt)
+static void draw_new_particle_system(View3D *v3d, Base *base, ParticleSystem *psys, int dt)
{
Object *ob=base->object;
ParticleSystemModifierData *psmd;
@@ -2915,12 +2914,12 @@
timestep= psys_get_timestep(part);
- wmLoadMatrix(CTX_wm_window(C), v3d->viewmat);
+ wmLoadMatrix(v3d->viewmat);
if( (base->flag & OB_FROMDUPLI) && (ob->flag & OB_FROMGROUP) ) {
float mat[4][4];
Mat4MulMat4(mat, psys->imat, ob->obmat);
- wmMultMatrix(CTX_wm_window(C), mat);
+ wmMultMatrix(mat);
}
totpart=psys->totpart;
@@ -3498,11 +3497,11 @@
psys->lattice=0;
}
- wmLoadMatrix(CTX_wm_window(C), v3d->viewmat);
- wmMultMatrix(CTX_wm_window(C), ob->obmat); // bring back local matrix for dtx
+ wmLoadMatrix(v3d->viewmat);
+ wmMultMatrix(ob->obmat); // bring back local matrix for dtx
}
-static void draw_particle_edit(const bContext *C, Scene *scene, View3D *v3d, Object *ob, ParticleSystem *psys, int dt)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list