This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/blenkernel/BKE_global.h
2002-12-27 13:11:01 +00:00

226 lines
6.1 KiB
C++

/**
* blenlib/BKE_global.h (mar-2001 nzc)
*
* Global settings, handles, pointers. This is the root for finding
* any data in Blender. This block is not serialized, but built anew
* for every fresh Blender run.
*
* $Id$
*
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
#ifndef BKE_GLOBAL_H
#define BKE_GLOBAL_H
#include "DNA_listBase.h"
#ifdef __cplusplus
extern "C" {
#endif
/* forwards */
struct View3D;
struct View2D;
struct SpaceIpo;
struct SpaceButs;
struct SpaceImage;
struct SpaceOops;
struct SpaceText;
struct SpaceSound;
struct SpaceAction;
struct SpaceNla;
struct Main;
struct Scene;
struct bScreen;
struct Object;
struct bSoundListener;
struct BMF_Font;
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;
struct Object *obedit;
/* fonts, allocated global data */
struct BMF_Font *font, *fonts, *fontss;
/* strings: lastsaved */
char ima[160], sce[160], lib[160];
/* totalen */
short totobj, totlamp, totobjsel, totcurve, totmesh, totmat;
int totvert, totface, totvertsel, totfacesel;
short machine, afbreek, moving, colact, zbuf;
short qual, background, imagewin, animspeed;
/**
* The current version of Blender.
*/
short version;
short simulf, fields, order, rt;
int f;
/* Editmode lists */
struct ListBase edve;
struct ListBase eded;
struct ListBase edvl;
float textcurs[4][2];
/* Frank's variables */
int renderd;
int real_sfra, real_efra;
int save_over;
/* Reevan's __NLA variables */
struct Object *obpose; /* Current posable object */
struct ListBase edbo; /* Armature Editmode bones */
/* this variable is written to / read from FileGlobal->fileflags */
int fileflags;
/* Janco's playing ground */
struct bSoundListener* listener;
/* Test thingy for Nzc */
int magic; /* toggle use of experimental render pipe */
int compat; /* toggle compatibility mode for edge rendering */
int notonlysolid;/* T-> also edge-render transparent faces */
int useRscale; /* bitflag for using colour scaling */
int useGscale; /* bitflag for using colour scaling */
int useBscale; /* bitflag for using colour scaling */
float cscale[4]; /* sliders for colour scaling */
int Rhisto; /* flags for making histograms */
int Ghisto;
int Bhisto;
/* special versions */
short special1, special2;
int flags;
} Global;
/* **************** GLOBAL ********************* */
/* G.f */
#define G_DISABLE_OK 1
#define G_PLAYANIM 2
#define G_TEST_DUPLI 4
#define G_SIMULATION 8
#define G_BACKBUFSEL 16
#define G_PICKSEL 32
#define G_DRAWNORMALS 64
#define G_DRAWFACES 128
#define G_FACESELECT 256
#define G_DRAW_EXT 512
#define G_VERTEXPAINT 1024
#define G_ALLEDGES 2048
#define G_DEBUG 4096
#define G_SCENESCRIPT 8192
#define G_PROPORTIONAL 16384
#define G_WEIGHTPAINT 32768 /* __NLA */
#define G_TEXTUREPAINT 65536
#define G_NOFROZEN (1 << 17) // frozen modules inactive
/* G.fileflags */
#define G_AUTOPACK_BIT 0
#define G_FILE_COMPRESS_BIT 1
#define G_FILE_AUTOPLAY_BIT 2
#define G_FILE_ENABLE_ALL_FRAMES_BIT 3
#define G_FILE_SHOW_DEBUG_PROPS_BIT 4
#define G_FILE_SHOW_FRAMERATE_BIT 5
#define G_FILE_SHOW_PROFILE_BIT 6
#define G_FILE_LOCK_BIT 7
#define G_FILE_SIGN_BIT 8
#define G_FILE_PUBLISH_BIT 9
#define G_AUTOPACK (1 << G_AUTOPACK_BIT)
#define G_FILE_COMPRESS (1 << G_FILE_COMPRESS_BIT)
#define G_FILE_AUTOPLAY (1 << G_FILE_AUTOPLAY_BIT)
#define G_FILE_ENABLE_ALL_FRAMES (1 << G_FILE_ENABLE_ALL_FRAMES_BIT)
#define G_FILE_SHOW_DEBUG_PROPS (1 << G_FILE_SHOW_DEBUG_PROPS_BIT)
#define G_FILE_SHOW_FRAMERATE (1 << G_FILE_SHOW_FRAMERATE_BIT)
#define G_FILE_SHOW_PROFILE (1 << G_FILE_SHOW_PROFILE_BIT)
#define G_FILE_LOCK (1 << G_FILE_LOCK_BIT)
#define G_FILE_SIGN (1 << G_FILE_SIGN_BIT)
#define G_FILE_PUBLISH (1 << G_FILE_PUBLISH_BIT)
/* G.simulf */
#define G_LOADFILE 2
#define G_RESTART 4
#define G_QUIT 8
#define G_SETSCENE 16
/* G.flags: double? */
#define G_FLAGS_AUTOPLAY_BIT 2
#define G_FLAGS_AUTOPLAY (1 << G_FLAGS_AUTOPLAY_BIT)
/* 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
/* G.order: indicates what endianness the platform where the file was
* written had. */
#define L_ENDIAN 1
#define B_ENDIAN 0
/* G.special1 */
#define G_HOLO 1
/* Memory is allocated where? blender.c */
extern Global G;
#ifdef __cplusplus
}
#endif
#endif