forked from bartvdbraak/blender
2.5: globals cleanup
* G.version removed, use BLENDER_VERSION * G.order removed, ENDIAN_ORDER * G.vd, G.sipo, G.buts, G.sima, .. removed. * G.qual removed * G.simulf removed (was unused in 2.4x) * error() and some other unused stubs removed
This commit is contained in:
parent
12ad72ba8f
commit
3bda5490f7
@ -66,15 +66,6 @@ struct BME_Glob;
|
||||
typedef struct Global {
|
||||
|
||||
/* active pointers */
|
||||
struct View3D *vd;
|
||||
struct View2D *v2d;
|
||||
struct SpaceIpo *sipo;
|
||||
struct SpaceButs *buts;
|
||||
struct SpaceImage *sima;
|
||||
struct SpaceOops *soops;
|
||||
struct SpaceSound *ssound;
|
||||
struct SpaceAction *saction; /* __NLA */
|
||||
struct SpaceNla *snla;
|
||||
struct Main *main;
|
||||
struct Scene *scene; /* denk aan file.c */
|
||||
struct bScreen *curscreen;
|
||||
@ -99,14 +90,11 @@ typedef struct Global {
|
||||
int totvert, totedge, totface, totvertsel, totedgesel, totfacesel;
|
||||
|
||||
short afbreek, moving;
|
||||
short qual, background;
|
||||
short background;
|
||||
short winpos, displaymode; /* used to be in Render */
|
||||
short rendering; /* to indicate render is busy, prevent renderwindow events etc */
|
||||
/**
|
||||
* The current version of Blender.
|
||||
*/
|
||||
short version;
|
||||
short simulf, order, rt;
|
||||
|
||||
short rt;
|
||||
int f;
|
||||
|
||||
/* Editmode lists */
|
||||
@ -235,28 +223,11 @@ typedef struct Global {
|
||||
#define G_WINDOWSTATE_BORDER 1
|
||||
#define G_WINDOWSTATE_FULLSCREEN 2
|
||||
|
||||
/* G.simulf */
|
||||
#define G_LOADFILE 2
|
||||
#define G_RESTART 4
|
||||
#define G_QUIT 8
|
||||
#define G_SETSCENE 16
|
||||
|
||||
/* G.qual */
|
||||
#define R_SHIFTKEY 1
|
||||
#define L_SHIFTKEY 2
|
||||
#define LR_SHIFTKEY 3
|
||||
#define R_ALTKEY 4
|
||||
#define L_ALTKEY 8
|
||||
#define LR_ALTKEY 12
|
||||
#define R_CTRLKEY 16
|
||||
#define L_CTRLKEY 32
|
||||
#define LR_CTRLKEY 48
|
||||
#define LR_COMMANDKEY 64
|
||||
|
||||
/* G.order: indicates what endianness the platform where the file was
|
||||
/* ENDIAN_ORDER: indicates what endianness the platform where the file was
|
||||
* written had. */
|
||||
#define L_ENDIAN 1
|
||||
#define B_ENDIAN 0
|
||||
extern short ENDIAN_ORDER;
|
||||
|
||||
/* G.moving, signals drawing in (3d) window to denote transform */
|
||||
#define G_TRANSFORM_OBJ 1
|
||||
|
@ -94,6 +94,7 @@
|
||||
Global G;
|
||||
UserDef U;
|
||||
ListBase WMlist= {NULL, NULL};
|
||||
short ENDIAN_ORDER;
|
||||
|
||||
char versionstr[48]= "";
|
||||
|
||||
@ -200,15 +201,13 @@ void initglobals(void)
|
||||
|
||||
strcpy(G.ima, "//");
|
||||
|
||||
G.version= BLENDER_VERSION;
|
||||
|
||||
G.order= 1;
|
||||
G.order= (((char*)&G.order)[0])?L_ENDIAN:B_ENDIAN;
|
||||
ENDIAN_ORDER= 1;
|
||||
ENDIAN_ORDER= (((char*)&ENDIAN_ORDER)[0])? L_ENDIAN: B_ENDIAN;
|
||||
|
||||
if(BLENDER_SUBVERSION)
|
||||
sprintf(versionstr, "www.blender.org %d.%d", G.version, BLENDER_SUBVERSION);
|
||||
sprintf(versionstr, "www.blender.org %d.%d", BLENDER_VERSION, BLENDER_SUBVERSION);
|
||||
else
|
||||
sprintf(versionstr, "www.blender.org %d", G.version);
|
||||
sprintf(versionstr, "www.blender.org %d", BLENDER_VERSION);
|
||||
|
||||
#ifdef _WIN32 // FULLSCREEN
|
||||
G.windowstate = G_WINDOWSTATE_USERDEF;
|
||||
@ -244,13 +243,6 @@ static void clear_global(void)
|
||||
G.main= NULL;
|
||||
|
||||
G.obedit= NULL;
|
||||
G.saction= NULL;
|
||||
G.buts= NULL;
|
||||
G.v2d= NULL;
|
||||
G.vd= NULL;
|
||||
G.soops= NULL;
|
||||
G.sima= NULL;
|
||||
G.sipo= NULL;
|
||||
|
||||
G.f &= ~(G_WEIGHTPAINT + G_VERTEXPAINT + G_FACESELECT + G_PARTICLEEDIT);
|
||||
}
|
||||
|
@ -105,6 +105,7 @@
|
||||
#include "BLI_arithb.h"
|
||||
#include "BLI_editVert.h"
|
||||
|
||||
#include "BKE_blender.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_mesh.h"
|
||||
@ -181,7 +182,7 @@ static int is_stl(char *str)
|
||||
return; \
|
||||
} \
|
||||
else { \
|
||||
if (G.order==B_ENDIAN) { \
|
||||
if (ENDIAN_ORDER==B_ENDIAN) { \
|
||||
SWITCH_INT(mvert->co[0]); \
|
||||
SWITCH_INT(mvert->co[1]); \
|
||||
SWITCH_INT(mvert->co[2]); \
|
||||
@ -250,7 +251,7 @@ static void read_stl_mesh_binary(char *str)
|
||||
|
||||
fseek(fpSTL, 80, SEEK_SET);
|
||||
fread(&numfacets, 4*sizeof(char), 1, fpSTL);
|
||||
if (G.order==B_ENDIAN) {
|
||||
if (ENDIAN_ORDER==B_ENDIAN) {
|
||||
SWITCH_INT(numfacets);
|
||||
}
|
||||
|
||||
@ -2459,7 +2460,7 @@ static void write_vert_stl(Object *ob, MVert *verts, int index, FILE *fpSTL)
|
||||
VECCOPY(vert, verts[(index)].co);
|
||||
Mat4MulVecfl(ob->obmat, vert);
|
||||
|
||||
if (G.order==B_ENDIAN) {
|
||||
if (ENDIAN_ORDER==B_ENDIAN) {
|
||||
SWITCH_INT(vert[0]);
|
||||
SWITCH_INT(vert[1]);
|
||||
SWITCH_INT(vert[2]);
|
||||
@ -2564,7 +2565,7 @@ void write_stl(char *str)
|
||||
*/
|
||||
fseek(fpSTL, 80, SEEK_SET);
|
||||
|
||||
if (G.order==B_ENDIAN) {
|
||||
if (ENDIAN_ORDER==B_ENDIAN) {
|
||||
SWITCH_INT(numfacets);
|
||||
}
|
||||
fwrite(&numfacets, 4*sizeof(char), 1, fpSTL);
|
||||
@ -2605,7 +2606,7 @@ static void write_videoscape_mesh(Object *ob, char *str)
|
||||
cp[1]= (unsigned char) (255.0*ma->b);
|
||||
cp[2]= (unsigned char) (255.0*ma->g);
|
||||
cp[3]= (unsigned char) (255.0*ma->r);
|
||||
if(G.order==L_ENDIAN) SWITCH_INT(kleur[a]);
|
||||
if(ENDIAN_ORDER==L_ENDIAN) SWITCH_INT(kleur[a]);
|
||||
}
|
||||
else kleur[a]= 0x00C0C0C0;
|
||||
|
||||
@ -3026,7 +3027,7 @@ void write_vrml(char *str)
|
||||
|
||||
/* FIRST: write all the datablocks */
|
||||
|
||||
fprintf(fp, "#VRML V1.0 ascii\n\n# Blender V%d\n\n# 'Switch' is used as a hack, to ensure it is not part of the drawing\n\n", G.version);
|
||||
fprintf(fp, "#VRML V1.0 ascii\n\n# Blender V%d\n\n# 'Switch' is used as a hack, to ensure it is not part of the drawing\n\n", BLENDER_VERSION);
|
||||
fprintf(fp, "Separator {\n");
|
||||
fprintf(fp, "Switch {\n");
|
||||
|
||||
|
@ -302,7 +302,7 @@ static AVFrame* generate_video_frame(uint8_t* pixels)
|
||||
/* Do RGBA-conversion and flipping in one step depending
|
||||
on CPU-Endianess */
|
||||
|
||||
if (G.order == L_ENDIAN) {
|
||||
if (ENDIAN_ORDER == L_ENDIAN) {
|
||||
int y;
|
||||
for (y = 0; y < height; y++) {
|
||||
uint8_t* target = rgb_frame->data[0]
|
||||
|
@ -2071,7 +2071,7 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil
|
||||
|
||||
wd= bgnwrite(handle, compare, current, write_flags);
|
||||
|
||||
sprintf(buf, "BLENDER%c%c%.3d", (sizeof(void*)==8)?'-':'_', (G.order==B_ENDIAN)?'V':'v', G.version);
|
||||
sprintf(buf, "BLENDER%c%c%.3d", (sizeof(void*)==8)?'-':'_', (ENDIAN_ORDER==B_ENDIAN)?'V':'v', BLENDER_VERSION);
|
||||
mywrite(wd, buf, 12);
|
||||
|
||||
write_renderinfo(wd, mainvar);
|
||||
|
@ -210,7 +210,7 @@ void setlinestyle(int nr);
|
||||
|
||||
|
||||
/* own working polygon offset */
|
||||
void bglPolygonOffset(float dist);
|
||||
void bglPolygonOffset(float viewdist, float dist);
|
||||
|
||||
/* For caching opengl matrices (gluProject/gluUnProject) */
|
||||
typedef struct bglMats {
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
/* ************** XXX OLD CRUFT WARNING ************* */
|
||||
|
||||
void apply_keyb_grid(float *val, float fac1, float fac2, float fac3, int invert);
|
||||
void apply_keyb_grid(int shift, int ctrl, float *val, float fac1, float fac2, float fac3, int invert);
|
||||
int GetButStringLength(char *str);
|
||||
|
||||
#endif /* ED_UTIL_H */
|
||||
|
@ -739,12 +739,8 @@ void bgl_get_mats(bglMats *mats)
|
||||
|
||||
/* *************** glPolygonOffset hack ************* */
|
||||
|
||||
// both temporal, so here for now (ton)
|
||||
#include "BKE_global.h"
|
||||
#include "DNA_view3d_types.h"
|
||||
|
||||
/* dist is only for ortho now... */
|
||||
void bglPolygonOffset(float dist)
|
||||
void bglPolygonOffset(float viewdist, float dist)
|
||||
{
|
||||
static float winmat[16], offset=0.0;
|
||||
|
||||
@ -760,7 +756,7 @@ void bglPolygonOffset(float dist)
|
||||
|
||||
/* dist is from camera to center point */
|
||||
|
||||
if(winmat[15]>0.5) offs= 0.00001*dist*G.vd->dist; // ortho tweaking
|
||||
if(winmat[15]>0.5) offs= 0.00001*dist*viewdist; // ortho tweaking
|
||||
else offs= 0.0005*dist; // should be clipping value or so...
|
||||
|
||||
winmat[14]-= offs;
|
||||
|
@ -29,14 +29,8 @@
|
||||
#include <string.h>
|
||||
|
||||
/* various UI stuff */
|
||||
void blender_test_break() {}
|
||||
void error() {}
|
||||
void set_timecursor() {}
|
||||
void waitcursor() {}
|
||||
void mainqenter() {}
|
||||
void saveover() {}
|
||||
void BIF_icons_free() {}
|
||||
void BIF_icons_init() {}
|
||||
|
||||
char texstr[20][12];
|
||||
|
||||
|
@ -194,7 +194,7 @@ static int draw_tfaces3D__drawFaceOpts(void *userData, int index)
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
static void draw_tfaces3D(Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
static void draw_tfaces3D(View3D *v3d, Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
{
|
||||
struct { Mesh *me; EdgeHash *eh; } data;
|
||||
|
||||
@ -203,7 +203,7 @@ static void draw_tfaces3D(Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glDisable(GL_LIGHTING);
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
|
||||
/* Draw (Hidden) Edges */
|
||||
UI_ThemeColor(TH_EDGE_FACESEL);
|
||||
@ -230,7 +230,7 @@ static void draw_tfaces3D(Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
|
||||
/* Draw Stippled Outline for selected faces */
|
||||
glColor3ub(255, 255, 255);
|
||||
@ -240,7 +240,7 @@ static void draw_tfaces3D(Object *ob, Mesh *me, DerivedMesh *dm)
|
||||
|
||||
dm->drawMappedEdges(dm, draw_tfaces3D__setActiveOpts, &data);
|
||||
|
||||
bglPolygonOffset(0.0); // resets correctly now, even after calling accumulated offsets
|
||||
bglPolygonOffset(v3d->dist, 0.0); // resets correctly now, even after calling accumulated offsets
|
||||
|
||||
BLI_edgehash_free(data.eh, NULL);
|
||||
}
|
||||
@ -567,7 +567,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, Object *ob, DerivedMesh *dm,
|
||||
|
||||
/* draw edges and selected faces over textured mesh */
|
||||
if(!G.obedit && faceselect)
|
||||
draw_tfaces3D(ob, me, dm);
|
||||
draw_tfaces3D(v3d, ob, me, dm);
|
||||
|
||||
/* reset from negative scale correction */
|
||||
glFrontFace(GL_CCW);
|
||||
|
@ -1804,7 +1804,7 @@ static void draw_em_measure_stats(View3D *v3d, Object *ob, EditMesh *em)
|
||||
if(v3d->zbuf && (v3d->flag & V3D_ZBUF_SELECT)==0)
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
if(v3d->zbuf) bglPolygonOffset(5.0);
|
||||
if(v3d->zbuf) bglPolygonOffset(v3d->dist, 5.0);
|
||||
|
||||
if(G.f & G_DRAW_EDGELEN) {
|
||||
UI_GetThemeColor3fv(TH_TEXT, col);
|
||||
@ -1939,7 +1939,7 @@ static void draw_em_measure_stats(View3D *v3d, Object *ob, EditMesh *em)
|
||||
|
||||
if(v3d->zbuf) {
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
bglPolygonOffset(0.0);
|
||||
bglPolygonOffset(v3d->dist, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2014,7 +2014,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, Object *ob, EditMesh *em, D
|
||||
// write to show selected edge wires better
|
||||
UI_ThemeColor(TH_WIRE);
|
||||
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
glDepthMask(0);
|
||||
}
|
||||
else {
|
||||
@ -2117,7 +2117,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, Object *ob, EditMesh *em, D
|
||||
|
||||
if(dt>OB_WIRE) {
|
||||
glDepthMask(1);
|
||||
bglPolygonOffset(0.0);
|
||||
bglPolygonOffset(v3d->dist, 0.0);
|
||||
GPU_disable_material();
|
||||
}
|
||||
|
||||
@ -2349,7 +2349,7 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, Base *base, int dt, int f
|
||||
* otherwise this wire is to overlay solid mode faces so do some depth buffer tricks.
|
||||
*/
|
||||
if (dt!=OB_WIRE && draw_wire==2) {
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
glDepthMask(0); // disable write in zbuffer, selected edge wires show better
|
||||
}
|
||||
|
||||
@ -2357,7 +2357,7 @@ static void draw_mesh_fancy(Scene *scene, View3D *v3d, Base *base, int dt, int f
|
||||
|
||||
if (dt!=OB_WIRE && draw_wire==2) {
|
||||
glDepthMask(1);
|
||||
bglPolygonOffset(0.0);
|
||||
bglPolygonOffset(v3d->dist, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2388,7 +2388,7 @@ static int draw_mesh_object(Scene *scene, View3D *v3d, Base *base, int dt, int f
|
||||
if(dt>OB_WIRE) {
|
||||
// no transp in editmode, the fancy draw over goes bad then
|
||||
glsl = draw_glsl_material(scene, ob, v3d, dt);
|
||||
GPU_set_object_materials(scene, ob, glsl, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, glsl, NULL);
|
||||
}
|
||||
|
||||
draw_em_fancy(scene, v3d, ob, G.editMesh, cageDM, finalDM, dt);
|
||||
@ -2407,7 +2407,7 @@ static int draw_mesh_object(Scene *scene, View3D *v3d, Base *base, int dt, int f
|
||||
check_alpha = check_material_alpha(base, ob, glsl);
|
||||
|
||||
if(dt==OB_SOLID || glsl) {
|
||||
GPU_set_object_materials(scene, ob, glsl,
|
||||
GPU_set_object_materials(v3d, scene, ob, glsl,
|
||||
(check_alpha)? &do_alpha_pass: NULL);
|
||||
}
|
||||
|
||||
@ -2722,7 +2722,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
}
|
||||
else {
|
||||
if(draw_glsl_material(scene, ob, v3d, dt)) {
|
||||
GPU_set_object_materials(scene, ob, 1, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 1, NULL);
|
||||
drawDispListsolid(lb, ob, 1);
|
||||
}
|
||||
else if(dt == OB_SHADED) {
|
||||
@ -2730,7 +2730,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
drawDispListshaded(lb, ob);
|
||||
}
|
||||
else {
|
||||
GPU_set_object_materials(scene, ob, 0, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 0, NULL);
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
|
||||
drawDispListsolid(lb, ob, 0);
|
||||
}
|
||||
@ -2760,7 +2760,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
if(dl->nors==NULL) addnormalsDispList(ob, lb);
|
||||
|
||||
if(draw_glsl_material(scene, ob, v3d, dt)) {
|
||||
GPU_set_object_materials(scene, ob, 1, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 1, NULL);
|
||||
drawDispListsolid(lb, ob, 1);
|
||||
}
|
||||
else if(dt==OB_SHADED) {
|
||||
@ -2768,7 +2768,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
drawDispListshaded(lb, ob);
|
||||
}
|
||||
else {
|
||||
GPU_set_object_materials(scene, ob, 0, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 0, NULL);
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
|
||||
|
||||
drawDispListsolid(lb, ob, 0);
|
||||
@ -2788,7 +2788,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
if(solid) {
|
||||
|
||||
if(draw_glsl_material(scene, ob, v3d, dt)) {
|
||||
GPU_set_object_materials(scene, ob, 1, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 1, NULL);
|
||||
drawDispListsolid(lb, ob, 1);
|
||||
}
|
||||
else if(dt == OB_SHADED) {
|
||||
@ -2797,7 +2797,7 @@ static int drawDispList(Scene *scene, View3D *v3d, Base *base, int dt)
|
||||
drawDispListshaded(lb, ob);
|
||||
}
|
||||
else {
|
||||
GPU_set_object_materials(scene, ob, 0, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, 0, NULL);
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
|
||||
|
||||
drawDispListsolid(lb, ob, 0);
|
||||
@ -4593,7 +4593,7 @@ static void drawWireExtra(Scene *scene, View3D *v3d, Object *ob)
|
||||
}
|
||||
}
|
||||
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
glDepthMask(0); // disable write in zbuffer, selected edge wires show better
|
||||
|
||||
if (ELEM3(ob->type, OB_FONT, OB_CURVE, OB_SURF)) {
|
||||
@ -4610,7 +4610,7 @@ static void drawWireExtra(Scene *scene, View3D *v3d, Object *ob)
|
||||
}
|
||||
|
||||
glDepthMask(1);
|
||||
bglPolygonOffset(0.0);
|
||||
bglPolygonOffset(v3d->dist, 0.0);
|
||||
}
|
||||
|
||||
/* should be called in view space */
|
||||
@ -5376,7 +5376,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, Object *ob)
|
||||
|
||||
em_solidoffs= bbs_mesh_solid_EM(scene, v3d, dm, scene->selectmode & SCE_SELECT_FACE);
|
||||
|
||||
bglPolygonOffset(1.0);
|
||||
bglPolygonOffset(v3d->dist, 1.0);
|
||||
|
||||
// we draw edges always, for loop (select) tools
|
||||
em_wireoffs= bbs_mesh_wire(dm, em_solidoffs);
|
||||
@ -5386,7 +5386,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, Object *ob)
|
||||
em_vertoffs= bbs_mesh_verts(dm, em_wireoffs);
|
||||
else em_vertoffs= em_wireoffs;
|
||||
|
||||
bglPolygonOffset(0.0);
|
||||
bglPolygonOffset(v3d->dist, 0.0);
|
||||
|
||||
dm->release(dm);
|
||||
|
||||
@ -5430,7 +5430,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, Object *ob, int
|
||||
|
||||
if(dm) {
|
||||
glsl = draw_glsl_material(scene, ob, v3d, dt);
|
||||
GPU_set_object_materials(scene, ob, glsl, NULL);
|
||||
GPU_set_object_materials(v3d, scene, ob, glsl, NULL);
|
||||
}
|
||||
else {
|
||||
glEnable(GL_COLOR_MATERIAL);
|
||||
|
@ -921,7 +921,7 @@ void initlocalview(Scene *scene, ARegion *ar, View3D *v3d)
|
||||
else {
|
||||
base= FIRSTBASE;
|
||||
while(base) {
|
||||
if TESTBASE(base) {
|
||||
if TESTBASE(v3d, base) {
|
||||
minmax_object(base->object, min, max);
|
||||
base->lay |= locallay;
|
||||
base->object->lay= base->lay;
|
||||
@ -1003,7 +1003,7 @@ void centerview(ARegion *ar, View3D *v3d) /* like a localview without local! */
|
||||
/* this is weak code this way, we should make a generic active/selection callback interface once... */
|
||||
Base *base;
|
||||
for(base=FIRSTBASE; base; base= base->next) {
|
||||
if(TESTBASELIB(base)) {
|
||||
if(TESTBASELIB(v3d, base)) {
|
||||
if(base->object->type==OB_ARMATURE)
|
||||
if(base->object->flag & OB_POSEMODE)
|
||||
break;
|
||||
@ -1047,7 +1047,7 @@ void centerview(ARegion *ar, View3D *v3d) /* like a localview without local! */
|
||||
else {
|
||||
Base *base= FIRSTBASE;
|
||||
while(base) {
|
||||
if TESTBASE(base) {
|
||||
if TESTBASE(v3d, base) {
|
||||
minmax_object(base->object, min, max);
|
||||
/* account for duplis */
|
||||
minmax_object_duplis(base->object, min, max);
|
||||
|
@ -394,9 +394,9 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
|
||||
fac= ((float)(evt->x - mm->firstx)*dx);
|
||||
|
||||
if (ELEM(mm->slink->spacetype, SPACE_TIME, SPACE_SOUND))
|
||||
apply_keyb_grid(&fac, 0.0, FPS, 0.1*FPS, 0);
|
||||
apply_keyb_grid(evt->shift, evt->ctrl, &fac, 0.0, FPS, 0.1*FPS, 0);
|
||||
else
|
||||
apply_keyb_grid(&fac, 0.0, 1.0, 0.1, U.flag & USER_AUTOGRABGRID);
|
||||
apply_keyb_grid(evt->shift, evt->ctrl, &fac, 0.0, 1.0, 0.1, U.flag & USER_AUTOGRABGRID);
|
||||
|
||||
offs= (int)fac;
|
||||
RNA_int_set(op->ptr, "frs", offs);
|
||||
|
@ -47,19 +47,14 @@
|
||||
|
||||
|
||||
/* now only used in 2d spaces, like time, ipo, nla, sima... */
|
||||
/* XXX clean G.qual */
|
||||
void apply_keyb_grid(float *val, float fac1, float fac2, float fac3, int invert)
|
||||
/* XXX shift/ctrl not configurable */
|
||||
void apply_keyb_grid(int shift, int ctrl, float *val, float fac1, float fac2, float fac3, int invert)
|
||||
{
|
||||
/* fac1 is for 'nothing', fac2 for CTRL, fac3 for SHIFT */
|
||||
int ctrl;
|
||||
if(invert)
|
||||
ctrl= !ctrl;
|
||||
|
||||
if(invert) {
|
||||
if(G.qual & LR_CTRLKEY) ctrl= 0;
|
||||
else ctrl= 1;
|
||||
}
|
||||
else ctrl= (G.qual & LR_CTRLKEY);
|
||||
|
||||
if(ctrl && (G.qual & LR_SHIFTKEY)) {
|
||||
if(ctrl && shift) {
|
||||
if(fac3!= 0.0) *val= fac3*floor(*val/fac3 +.5);
|
||||
}
|
||||
else if(ctrl) {
|
||||
|
@ -37,10 +37,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct MTFace;
|
||||
struct Image;
|
||||
struct Scene;
|
||||
struct MTFace;
|
||||
struct Object;
|
||||
struct Scene;
|
||||
struct View3d;
|
||||
|
||||
/* OpenGL drawing functions related to shading. These are also
|
||||
* shared with the game engine, where there were previously
|
||||
@ -61,8 +62,8 @@ void GPU_state_init(void);
|
||||
* GPU_enable_material returns 0 if drawing should be skipped
|
||||
* - after drawing, the material must be disabled again */
|
||||
|
||||
void GPU_set_object_materials(struct Scene *scene, struct Object *ob,
|
||||
int glsl, int *do_alpha_pass);
|
||||
void GPU_set_object_materials(struct View3D *v3d, struct Scene *scene,
|
||||
struct Object *ob, int glsl, int *do_alpha_pass);
|
||||
int GPU_enable_material(int nr, void *attribs);
|
||||
void GPU_disable_material(void);
|
||||
|
||||
|
@ -757,6 +757,9 @@ static struct GPUMaterialState {
|
||||
Material *gboundmat;
|
||||
Object *gob;
|
||||
Scene *gscene;
|
||||
int glay;
|
||||
float (*gviewmat)[4];
|
||||
float (*gviewinv)[4];
|
||||
|
||||
GPUBlendMode blendmode[MAXMATBUF];
|
||||
int alphapass;
|
||||
@ -779,7 +782,7 @@ Material *gpu_active_node_material(Material *ma)
|
||||
return ma;
|
||||
}
|
||||
|
||||
void GPU_set_object_materials(Scene *scene, Object *ob, int glsl, int *do_alpha_pass)
|
||||
void GPU_set_object_materials(View3D *v3d, Scene *scene, Object *ob, int glsl, int *do_alpha_pass)
|
||||
{
|
||||
extern Material defmaterial; /* from material.c */
|
||||
Material *ma;
|
||||
@ -796,8 +799,11 @@ void GPU_set_object_materials(Scene *scene, Object *ob, int glsl, int *do_alpha_
|
||||
GMS.gob = ob;
|
||||
GMS.gscene = scene;
|
||||
GMS.totmat= ob->totcol;
|
||||
GMS.glay= v3d->lay;
|
||||
GMS.gviewmat= v3d->viewmat;
|
||||
GMS.gviewinv= v3d->viewinv;
|
||||
|
||||
GMS.alphapass = (G.vd && G.vd->transp);
|
||||
GMS.alphapass = (v3d && v3d->transp);
|
||||
if(do_alpha_pass)
|
||||
*do_alpha_pass = 0;
|
||||
|
||||
@ -918,8 +924,8 @@ int GPU_enable_material(int nr, void *attribs)
|
||||
|
||||
gpumat = GPU_material_from_blender(GMS.gscene, mat);
|
||||
GPU_material_vertex_attributes(gpumat, gattribs);
|
||||
GPU_material_bind(gpumat, GMS.gob->lay, G.vd->lay, 1.0);
|
||||
GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, G.vd->viewmat, G.vd->viewinv, GMS.gob->col);
|
||||
GPU_material_bind(gpumat, GMS.gob->lay, GMS.glay, 1.0);
|
||||
GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, GMS.gviewmat, GMS.gviewinv, GMS.gob->col);
|
||||
GMS.gboundmat= mat;
|
||||
|
||||
if(GMS.alphapass) glDepthMask(1);
|
||||
|
@ -532,7 +532,7 @@ struct ImBuf *imb_loadamiga(int *iffmem,int flags)
|
||||
|
||||
if (ibuf) {
|
||||
if (ibuf->rect)
|
||||
if (G.order == B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
|
||||
if (ENDIAN_ORDER == B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
|
||||
}
|
||||
|
||||
return (ibuf);
|
||||
|
@ -778,7 +778,7 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position) {
|
||||
}
|
||||
}
|
||||
|
||||
if (G.order == B_ENDIAN) {
|
||||
if (ENDIAN_ORDER == B_ENDIAN) {
|
||||
int * dstStride
|
||||
= anim->pFrameRGB->linesize;
|
||||
uint8_t** dst = anim->pFrameRGB->data;
|
||||
|
@ -410,7 +410,7 @@ struct ImBuf *imb_loadtiff(unsigned char *mem, int size, int flags)
|
||||
/* close the client layer interface to the in-memory file */
|
||||
libtiff_TIFFClose(image);
|
||||
|
||||
if (G.order == B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
|
||||
if (ENDIAN_ORDER == B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
|
||||
|
||||
/* return successfully */
|
||||
return (ibuf);
|
||||
|
@ -721,9 +721,9 @@ typedef struct Scene {
|
||||
#define MINFRAME 1
|
||||
#define MINFRAMEF 1.0
|
||||
|
||||
#define TESTBASE(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) )
|
||||
#define TESTBASELIB(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
|
||||
#define BASE_SELECTABLE(base) ((base->lay & G.vd->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
|
||||
#define TESTBASE(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) )
|
||||
#define TESTBASELIB(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
|
||||
#define BASE_SELECTABLE(v3d, base) ((base->lay & v3d->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
|
||||
#define FIRSTBASE G.scene->base.first
|
||||
#define LASTBASE G.scene->base.last
|
||||
#define BASACT (G.scene->basact)
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "radio_types.h"
|
||||
|
||||
extern RadGlobal RG;
|
||||
struct View3D;
|
||||
|
||||
/* radfactors.c */
|
||||
extern float calcStokefactor(RPatch *shoot, RPatch *rp, RNode *rn, float *area);
|
||||
@ -111,7 +112,7 @@ extern void splitconnected(void);
|
||||
extern int vergedge(const void *v1,const void *v2);
|
||||
extern void addedge(float *v1, float *v2, EdSort *es);
|
||||
extern void setedgepointers(void);
|
||||
extern void rad_collect_meshes(void);
|
||||
extern void rad_collect_meshes(struct View3D *v3d);
|
||||
extern void countelem(RNode *rn);
|
||||
extern void countglobaldata(void);
|
||||
extern void addelem(RNode ***el, RNode *rn, RPatch *rp);
|
||||
|
@ -293,7 +293,7 @@ static int materialIndex(Material *ma)
|
||||
return -1;
|
||||
}
|
||||
|
||||
void rad_collect_meshes()
|
||||
void rad_collect_meshes(View3D *v3d)
|
||||
{
|
||||
extern Material defmaterial;
|
||||
Base *base;
|
||||
@ -309,7 +309,7 @@ void rad_collect_meshes()
|
||||
float *vd, *v1, *v2, *v3, *v4 = NULL;
|
||||
int a, b, offs, index, mfdatatot;
|
||||
|
||||
if (G.vd==NULL) {
|
||||
if (v3d==NULL) {
|
||||
printf("Error, trying to collect radiosity meshes with no 3d view\n");
|
||||
return;
|
||||
}
|
||||
@ -330,7 +330,7 @@ void rad_collect_meshes()
|
||||
RG.totface= 0;
|
||||
base= (G.scene->base.first);
|
||||
while(base) {
|
||||
if(((base)->flag & SELECT) && ((base)->lay & G.vd->lay) ) {
|
||||
if(((base)->flag & SELECT) && ((base)->lay & v3d->lay) ) {
|
||||
if(base->object->type==OB_MESH) {
|
||||
base->flag |= OB_RADIO;
|
||||
me= base->object->data;
|
||||
@ -353,7 +353,7 @@ void rad_collect_meshes()
|
||||
/* min-max and material array */
|
||||
base= (G.scene->base.first);
|
||||
while(base) {
|
||||
if( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) ) {
|
||||
if( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) ) {
|
||||
if(base->object->type==OB_MESH) {
|
||||
me= base->object->data;
|
||||
mvert= me->mvert;
|
||||
@ -420,7 +420,7 @@ void rad_collect_meshes()
|
||||
|
||||
base= (G.scene->base.first);
|
||||
while(base) {
|
||||
if( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) ) {
|
||||
if( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) ) {
|
||||
if(base->object->type==OB_MESH) {
|
||||
ob= base->object;
|
||||
me= ob->data;
|
||||
|
@ -35,7 +35,9 @@
|
||||
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
/* called by meshtools */
|
||||
void RE_make_sticky(void);
|
||||
struct View3D;
|
||||
|
||||
void RE_make_sticky(struct View3D *v3d);
|
||||
|
||||
/* for radiosity module */
|
||||
struct RadView;
|
||||
|
@ -5512,7 +5512,7 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
|
||||
/* Sticky texture coords */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
void RE_make_sticky(void)
|
||||
void RE_make_sticky(View3D *v3d)
|
||||
{
|
||||
Object *ob;
|
||||
Base *base;
|
||||
@ -5523,7 +5523,7 @@ void RE_make_sticky(void)
|
||||
float ho[4], mat[4][4];
|
||||
int a;
|
||||
|
||||
if(G.vd==NULL) {
|
||||
if(v3d==NULL) {
|
||||
printf("Need a 3d view to make sticky\n");
|
||||
return;
|
||||
}
|
||||
@ -5549,7 +5549,7 @@ void RE_make_sticky(void)
|
||||
RE_SetView(re, mat);
|
||||
|
||||
for(base= FIRSTBASE; base; base= base->next) {
|
||||
if TESTBASELIB(base) {
|
||||
if TESTBASELIB(v3d, base) {
|
||||
if(base->object->type==OB_MESH) {
|
||||
ob= base->object;
|
||||
|
||||
|
@ -34,9 +34,6 @@ extern "C" {
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
|
||||
/* need error(), so extern declare here */
|
||||
extern void error (char *fmt, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -144,20 +144,20 @@ static void blender_esc(int sig)
|
||||
static void print_version(void)
|
||||
{
|
||||
#ifdef BUILD_DATE
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", G.version/100, G.version%100, BLENDER_SUBVERSION);
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
|
||||
printf ("\tbuild date: %s\n", build_date);
|
||||
printf ("\tbuild time: %s\n", build_time);
|
||||
printf ("\tbuild revision: %s\n", build_rev);
|
||||
printf ("\tbuild platform: %s\n", build_platform);
|
||||
printf ("\tbuild type: %s\n", build_type);
|
||||
#else
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", G.version/100, G.version%100, BLENDER_SUBVERSION);
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void print_help(void)
|
||||
{
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", G.version/100, G.version%100, BLENDER_SUBVERSION);
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
|
||||
printf ("Usage: blender [args ...] [file] [args ...]\n");
|
||||
printf ("\nRender options:\n");
|
||||
printf (" -b <file>\tRender <file> in background (doesn't load the user defaults .B.blend file)\n");
|
||||
@ -429,7 +429,7 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
case 'd':
|
||||
G.f |= G_DEBUG; /* std output printf's */
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", G.version/100, G.version%100, BLENDER_SUBVERSION);
|
||||
printf ("Blender %d.%02d (sub %d) Build\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION);
|
||||
MEM_set_memory_debug();
|
||||
#ifdef NAN_BUILDINFO
|
||||
printf("Build: %s %s %s %s\n", build_date, build_time, build_platform, build_type);
|
||||
|
@ -210,7 +210,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
|
||||
int tmp_lay= G.scene->lay;
|
||||
Object *tmp_camera = G.scene->camera;
|
||||
|
||||
if (G.vd->scenelock==0){
|
||||
if (v3d->scenelock==0){
|
||||
G.scene->lay= v3d->lay;
|
||||
G.scene->camera= v3d->camera;
|
||||
}
|
||||
@ -477,7 +477,7 @@ extern "C" void StartKetsjiShell(struct ScrArea *area,
|
||||
gameLogic_keys = NULL;
|
||||
}
|
||||
//lock frame and camera enabled - restoring global values
|
||||
if (G.vd->scenelock==0){
|
||||
if (v3d->scenelock==0){
|
||||
G.scene->lay= tmp_lay;
|
||||
G.scene->camera= tmp_camera;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user