forked from bartvdbraak/blender
huge commit, sorry!
this is part 1 of the UI makeover. It has: - menu system from Matt integrated - buttons drawing from Matt - generic button panel system implemented - converted displaybuttons (not the rest yet) - cleaned up a lot in drawing spaces itself, to make it aligned and pixel exact. - cleaned loads of little compiler warnings, protos... still a lot of work needed, will all be in next week i hope! (warn: 2 new c files! butspace.c and buttons_scene.c)
This commit is contained in:
parent
c355aa06a8
commit
842bb449c5
@ -42,7 +42,7 @@ extern "C" {
|
||||
|
||||
struct ListBase;
|
||||
|
||||
#define BLENDER_VERSION 228
|
||||
#define BLENDER_VERSION 229
|
||||
|
||||
int BKE_read_file(char *dir, void *type_r);
|
||||
int BKE_read_file_from_memory(char* filebuf, int filelength, void *type_r);
|
||||
|
@ -2526,6 +2526,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
|
||||
SpaceLink *sl;
|
||||
|
||||
link_list(fd, &(sa->spacedata));
|
||||
link_list(fd, &(sa->panels));
|
||||
|
||||
for (sl= sa->spacedata.first; sl; sl= sl->next) {
|
||||
if (sl->spacetype==SPACE_VIEW3D) {
|
||||
@ -3733,7 +3734,73 @@ static void do_versions(Main *main)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(main->versionfile <= 228) {
|
||||
Scene *sce;
|
||||
bScreen *sc;
|
||||
|
||||
for (sce= main->scene.first; sce; sce= sce->id.next) {
|
||||
sce->r.mode |= R_ENVMAP;
|
||||
}
|
||||
|
||||
// convert old mainb values for new button panels
|
||||
for (sc= main->screen.first; sc; sc= sc->id.next) {
|
||||
ScrArea *sa;
|
||||
|
||||
for (sa= sc->areabase.first; sa; sa= sa->next) {
|
||||
SpaceLink *sl;
|
||||
|
||||
for (sl= sa->spacedata.first; sl; sl= sl->next) {
|
||||
if (sl->spacetype==SPACE_BUTS) {
|
||||
SpaceButs *sbuts= (SpaceButs *) sl;
|
||||
|
||||
if(sbuts->mainb==BUTS_LAMP) {
|
||||
sbuts->mainb= CONTEXT_SHADING;
|
||||
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_LAMP;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_MAT) {
|
||||
sbuts->mainb= CONTEXT_SHADING;
|
||||
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_MAT;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_TEX) {
|
||||
sbuts->mainb= CONTEXT_SHADING;
|
||||
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_TEX;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_ANIM) {
|
||||
sbuts->mainb= CONTEXT_OBJECT;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_WORLD) {
|
||||
sbuts->mainb= CONTEXT_SCENE;
|
||||
sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_WORLD;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_RENDER) {
|
||||
sbuts->mainb= CONTEXT_SCENE;
|
||||
sbuts->tab[CONTEXT_SCENE]= TAB_SCENE_RENDER;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_GAME) {
|
||||
sbuts->mainb= CONTEXT_LOGIC;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_FPAINT) {
|
||||
sbuts->mainb= CONTEXT_EDITING;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_RADIO) {
|
||||
sbuts->mainb= CONTEXT_SHADING;
|
||||
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_RAD;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_CONSTRAINT) {
|
||||
sbuts->mainb= CONTEXT_OBJECT;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_SCRIPT) {
|
||||
sbuts->mainb= CONTEXT_OBJECT;
|
||||
}
|
||||
else if(sbuts->mainb==BUTS_EDIT) {
|
||||
sbuts->mainb= CONTEXT_EDITING;
|
||||
}
|
||||
else sbuts->mainb= CONTEXT_SCENE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* don't forget to set version number in blender.c! */
|
||||
|
@ -1201,9 +1201,16 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
|
||||
sa= sc->areabase.first;
|
||||
while(sa) {
|
||||
SpaceLink *sl;
|
||||
Panel *pa;
|
||||
|
||||
writestruct(wd, DATA, "ScrArea", 1, sa);
|
||||
|
||||
pa= sa->panels.first;
|
||||
while(pa) {
|
||||
writestruct(wd, DATA, "Panel", 1, pa);
|
||||
pa= pa->next;
|
||||
}
|
||||
|
||||
sl= sa->spacedata.first;
|
||||
while(sl) {
|
||||
if(sl->spacetype==SPACE_VIEW3D) {
|
||||
|
413
source/blender/include/BIF_butspace.h
Normal file
413
source/blender/include/BIF_butspace.h
Normal file
@ -0,0 +1,413 @@
|
||||
/**
|
||||
* $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 BIF_BUTSPACE_H
|
||||
#define BIF_BUTSPACE_H
|
||||
|
||||
/* all internal calls and event codes for buttons space */
|
||||
|
||||
extern void render_panels(void);
|
||||
|
||||
|
||||
/* -------------- event defines ------------ */
|
||||
|
||||
|
||||
#define B_DIFF 1
|
||||
|
||||
/* *********************** */
|
||||
#define B_VIEWBUTS 1100
|
||||
|
||||
#define B_LOADBGPIC 1001
|
||||
#define B_BLENDBGPIC 1002
|
||||
#define B_BGPICBROWSE 1003
|
||||
#define B_BGPICTEX 1004
|
||||
#define B_BGPICCLEAR 1005
|
||||
#define B_BGPICTEXCLEAR 1006
|
||||
|
||||
/* *********************** */
|
||||
#define B_LAMPBUTS 1200
|
||||
|
||||
#define B_LAMPREDRAW 1101
|
||||
#define B_COLLAMP 1102
|
||||
#define B_TEXCLEARLAMP 1103
|
||||
#define B_SBUFF 1104
|
||||
|
||||
/* *********************** */
|
||||
#define B_MATBUTS 1300
|
||||
|
||||
#define B_MATCOL 1201
|
||||
#define B_SPECCOL 1202
|
||||
#define B_MIRCOL 1203
|
||||
#define B_ACTCOL 1204
|
||||
#define B_MATFROM 1205
|
||||
#define B_MATPRV 1206
|
||||
#define B_MTEXCOL 1207
|
||||
#define B_TEXCLEAR 1208
|
||||
#define B_MATPRV_DRAW 1209
|
||||
#define B_MTEXPASTE 1210
|
||||
#define B_MTEXCOPY 1211
|
||||
#define B_MATLAY 1212
|
||||
|
||||
/* *********************** */
|
||||
#define B_TEXBUTS 1400
|
||||
|
||||
#define B_TEXTYPE 1301
|
||||
#define B_DEFTEXVAR 1302
|
||||
#define B_LOADTEXIMA 1303
|
||||
#define B_NAMEIMA 1304
|
||||
#define B_TEXCHANNEL 1305
|
||||
#define B_TEXREDR_PRV 1306
|
||||
#define B_TEXIMABROWSE 1307
|
||||
#define B_IMAPTEST 1308
|
||||
#define B_RELOADIMA 1309
|
||||
#define B_LOADPLUGIN 1310
|
||||
#define B_NAMEPLUGIN 1311
|
||||
#define B_COLORBAND 1312
|
||||
#define B_ADDCOLORBAND 1313
|
||||
#define B_DELCOLORBAND 1314
|
||||
#define B_CALCCBAND 1315
|
||||
#define B_CALCCBAND2 1316
|
||||
#define B_DOCOLORBAND 1317
|
||||
#define B_REDRAWCBAND 1318
|
||||
#define B_BANDCOL 1319
|
||||
#define B_LOADTEXIMA1 1320
|
||||
#define B_PLUGBUT 1321
|
||||
|
||||
/* plugbut reserves 24 buttons at least! */
|
||||
|
||||
#define B_ENV_MAKE 1350
|
||||
#define B_ENV_FREE 1351
|
||||
#define B_ENV_DELETE 1352
|
||||
#define B_ENV_SAVE 1353
|
||||
#define B_ENV_OB 1354
|
||||
|
||||
#define B_PACKIMA 1355
|
||||
#define B_TEXSETFRAMES 1356
|
||||
|
||||
#define B_ENV_FREE_ALL 1357
|
||||
|
||||
/* *********************** */
|
||||
#define B_ANIMBUTS 1500
|
||||
|
||||
#define B_RECALCPATH 1401
|
||||
#define B_MUL_IPO 1402
|
||||
#define B_AUTOTIMEOFS 1403
|
||||
#define B_FRAMEMAP 1404
|
||||
#define B_NEWEFFECT 1405
|
||||
#define B_PREVEFFECT 1406
|
||||
#define B_NEXTEFFECT 1407
|
||||
#define B_CHANGEEFFECT 1408
|
||||
#define B_CALCEFFECT 1409
|
||||
#define B_DELEFFECT 1410
|
||||
#define B_RECALCAL 1411
|
||||
#define B_SETSPEED 1412
|
||||
#define B_PRINTSPEED 1413
|
||||
#define B_PRINTLEN 1414
|
||||
#define B_RELKEY 1415
|
||||
|
||||
/* this has MAX_EFFECT settings! Next free define is 1450... */
|
||||
#define B_SELEFFECT 1430
|
||||
|
||||
|
||||
/* *********************** */
|
||||
#define B_WORLDBUTS 1600
|
||||
|
||||
#define B_TEXCLEARWORLD 1501
|
||||
|
||||
/* *********************** */
|
||||
#define B_RENDERBUTS 1700
|
||||
|
||||
#define B_FS_PIC 1601
|
||||
#define B_FS_BACKBUF 1602
|
||||
|
||||
#define B_FS_FTYPE 1604
|
||||
#define B_DORENDER 1605
|
||||
#define B_DOANIM 1606
|
||||
#define B_PLAYANIM 1607
|
||||
#define B_PR_PAL 1608
|
||||
#define B_PR_FULL 1609
|
||||
#define B_PR_PRV 1610
|
||||
#define B_PR_CDI 1611
|
||||
#define B_PR_PAL169 1612
|
||||
#define B_PR_D2MAC 1613
|
||||
#define B_PR_MPEG 1614
|
||||
#define B_REDRAWDISP 1615
|
||||
#define B_SETBROWSE 1616
|
||||
#define B_CLEARSET 1617
|
||||
#define B_PR_PRESET 1618
|
||||
#define B_PR_PANO 1619
|
||||
#define B_PR_NTSC 1620
|
||||
|
||||
#define B_IS_FTYPE 1622
|
||||
#define B_IS_BACKBUF 1623
|
||||
#define B_PR_PC 1624
|
||||
|
||||
#define B_PR_PANO360 1627
|
||||
#define B_PR_HALFFIELDS 1628
|
||||
#define B_NEWRENDERPIPE 1629
|
||||
#define B_R_SCALE 1630
|
||||
#define B_G_SCALE 1631
|
||||
#define B_B_SCALE 1632
|
||||
#define B_USE_R_SCALE 1633
|
||||
#define B_USE_G_SCALE 1634
|
||||
#define B_USE_B_SCALE 1635
|
||||
#define B_EDGECOLSLI 1636
|
||||
#define B_GAMMASLI 1637
|
||||
|
||||
#define B_FILETYPEMENU 1638
|
||||
#define B_SELECTCODEC 1639
|
||||
#define B_RTCHANGED 1640
|
||||
|
||||
#ifdef __NLA
|
||||
/* *********************** */
|
||||
enum {
|
||||
B_ARMATUREBUTS = 1800,
|
||||
B_POSE = 1701
|
||||
};
|
||||
#endif
|
||||
|
||||
/* *********************** */
|
||||
#define B_COMMONEDITBUTS 2049
|
||||
|
||||
#define B_MATWICH 2003
|
||||
#define B_MATNEW 2004
|
||||
#define B_MATDEL 2005
|
||||
#define B_MATASS 2006
|
||||
#define B_MATSEL 2007
|
||||
#define B_MATDESEL 2008
|
||||
#define B_HIDE 2009
|
||||
#define B_REVEAL 2010
|
||||
#define B_SELSWAP 2011
|
||||
#define B_SETSMOOTH 2012
|
||||
#define B_SETSOLID 2013
|
||||
#define B_AUTOTEX 2014
|
||||
#define B_DOCENTRE 2015
|
||||
#define B_DOCENTRENEW 2016
|
||||
#define B_DOCENTRECURSOR 2017
|
||||
|
||||
/* 32 values! */
|
||||
#define B_OBLAY 2018
|
||||
|
||||
#define B_MESHBUTS 2100
|
||||
|
||||
#define B_FLIPNORM 2050
|
||||
#define B_SPIN 2051
|
||||
#define B_SPINDUP 2052
|
||||
#define B_EXTR 2053
|
||||
#define B_SCREW 2054
|
||||
#define B_EXTREP 2055
|
||||
#define B_SPLIT 2056
|
||||
#define B_REMDOUB 2057
|
||||
#define B_SUBDIV 2058
|
||||
#define B_FRACSUBDIV 2059
|
||||
#define B_XSORT 2060
|
||||
#define B_HASH 2061
|
||||
#define B_DELSTICKY 2062
|
||||
#define B_DELVERTCOL 2063
|
||||
#define B_MAKE_TFACES 2064
|
||||
#define B_TOSPHERE 2065
|
||||
#define B_DEL_TFACES 2066
|
||||
#define B_NEWVGROUP 2067
|
||||
#define B_DELVGROUP 2068
|
||||
#define B_ASSIGNVGROUP 2069
|
||||
#define B_REMOVEVGROUP 2070
|
||||
#define B_SELVGROUP 2071
|
||||
#define B_DESELVGROUP 2072
|
||||
#define B_DECIM_FACES 2073
|
||||
#define B_DECIM_CANCEL 2074
|
||||
#define B_DECIM_APPLY 2075
|
||||
#define B_AUTOVGROUP 2076
|
||||
#define B_SLOWERDRAW 2077
|
||||
#define B_FASTERDRAW 2078
|
||||
#define B_VERTEXNOISE 2079
|
||||
#define B_VERTEXSMOOTH 2080
|
||||
#define B_MAKESTICKY 2082
|
||||
#define B_MAKEVERTCOL 2083
|
||||
|
||||
/* *********************** */
|
||||
#define B_CURVEBUTS 2200
|
||||
|
||||
#define B_CONVERTPOLY 2101
|
||||
#define B_CONVERTBEZ 2102
|
||||
#define B_CONVERTBSPL 2103
|
||||
#define B_CONVERTCARD 2104
|
||||
#define B_CONVERTNURB 2105
|
||||
#define B_UNIFU 2106
|
||||
#define B_ENDPU 2107
|
||||
#define B_BEZU 2108
|
||||
#define B_UNIFV 2109
|
||||
#define B_ENDPV 2110
|
||||
#define B_BEZV 2111
|
||||
#define B_SETWEIGHT 2112
|
||||
#define B_SETW1 2113
|
||||
#define B_SETW2 2114
|
||||
#define B_SETW3 2115
|
||||
#define B_SETORDER 2116
|
||||
#define B_MAKEDISP 2117
|
||||
#define B_SUBDIVCURVE 2118
|
||||
#define B_SPINNURB 2119
|
||||
#define B_CU3D 2120
|
||||
#define B_SETRESOLU 2121
|
||||
#define B_SETW4 2122
|
||||
|
||||
|
||||
/* *********************** */
|
||||
#define B_FONTBUTS 2300
|
||||
|
||||
#define B_MAKEFONT 2201
|
||||
#define B_TOUPPER 2202
|
||||
#define B_SETFONT 2203
|
||||
#define B_LOADFONT 2204
|
||||
#define B_TEXTONCURVE 2205
|
||||
#define B_PACKFONT 2206
|
||||
|
||||
/* *********************** */
|
||||
#define B_IKABUTS 2400
|
||||
|
||||
#define B_IKASETREF 2301
|
||||
#define B_IKARECALC 2302
|
||||
|
||||
/* *********************** */
|
||||
#define B_CAMBUTS 2500
|
||||
|
||||
/* *********************** */
|
||||
#define B_MBALLBUTS 2600
|
||||
|
||||
#define B_RECALCMBALL 2501
|
||||
|
||||
/* *********************** */
|
||||
#define B_LATTBUTS 2700
|
||||
|
||||
#define B_RESIZELAT 2601
|
||||
#define B_DRAWLAT 2602
|
||||
#define B_LATTCHANGED 2603
|
||||
|
||||
/* *********************** */
|
||||
#define B_GAMEBUTS 2800
|
||||
|
||||
/* in editsca.c */
|
||||
|
||||
/* *********************** */
|
||||
#define B_FPAINTBUTS 2900
|
||||
|
||||
#define B_VPCOLSLI 2801
|
||||
#define B_VPGAMMA 2802
|
||||
|
||||
#define B_COPY_TF_MODE 2804
|
||||
#define B_COPY_TF_UV 2805
|
||||
#define B_COPY_TF_COL 2806
|
||||
#define B_REDR_3D_IMA 2807
|
||||
#define B_SET_VCOL 2808
|
||||
|
||||
#define B_COPY_TF_TEX 2814
|
||||
#define B_TFACE_HALO 2815
|
||||
#define B_TFACE_BILLB 2816
|
||||
|
||||
#define B_SHOWTEX 2832
|
||||
#define B_ASSIGNMESH 2833
|
||||
|
||||
|
||||
/* *********************** */
|
||||
#define B_RADIOBUTS 3000
|
||||
|
||||
#define B_RAD_GO 2901
|
||||
#define B_RAD_INIT 2902
|
||||
#define B_RAD_LIMITS 2903
|
||||
#define B_RAD_FAC 2904
|
||||
#define B_RAD_NODELIM 2905
|
||||
#define B_RAD_NODEFILT 2906
|
||||
#define B_RAD_FACEFILT 2907
|
||||
#define B_RAD_ADD 2908
|
||||
#define B_RAD_DELETE 2909
|
||||
#define B_RAD_COLLECT 2910
|
||||
#define B_RAD_SHOOTP 2911
|
||||
#define B_RAD_SHOOTE 2912
|
||||
#define B_RAD_REPLACE 2913
|
||||
#define B_RAD_DRAW 2914
|
||||
#define B_RAD_FREE 2915
|
||||
#define B_RAD_ADDMESH 2916
|
||||
|
||||
/* *********************** */
|
||||
#define B_SCRIPTBUTS 3100
|
||||
|
||||
#define B_SCRIPT_ADD 3001
|
||||
#define B_SCRIPT_DEL 3002
|
||||
#define B_SCRIPT_TYPE 3003
|
||||
|
||||
/* Scene script buttons */
|
||||
#define B_SSCRIPT_ADD 3004
|
||||
#define B_SSCRIPT_DEL 3005
|
||||
#define B_SSCRIPT_TYPE 3006
|
||||
|
||||
/* *********************** */
|
||||
#define B_SOUNDBUTS 3200
|
||||
enum B_SOUND_BUTTONS {
|
||||
B_SOUND_CHANGED = 3101,
|
||||
B_SOUND_REDRAW,
|
||||
B_SOUND_VOLUME,
|
||||
B_SOUND_PANNING,
|
||||
B_SOUND_PITCH,
|
||||
B_SOUND_LOAD_SAMPLE,
|
||||
B_SOUND_MENU_SAMPLE,
|
||||
B_SOUND_NAME_SAMPLE,
|
||||
B_SOUND_UNLINK_SAMPLE,
|
||||
B_SOUND_RELOAD_SAMPLE,
|
||||
B_SOUND_UNPACK_SAMPLE,
|
||||
B_SOUND_PLAY_SAMPLE,
|
||||
B_SOUND_COPY_SOUND,
|
||||
B_SOUND_LOOPSTART,
|
||||
B_SOUND_LOOPEND,
|
||||
B_SOUND_BIDIRECTIONAL,
|
||||
B_SOUND_RECALC,
|
||||
B_SOUND_RATECHANGED,
|
||||
B_SOUND_MIXDOWN
|
||||
};
|
||||
|
||||
/* *********************** */
|
||||
#define B_CONSTRAINTBUTS 3300
|
||||
enum {
|
||||
B_CONSTRAINT_REDRAW = 3201,
|
||||
B_CONSTRAINT_ADD,
|
||||
B_CONSTRAINT_DEL,
|
||||
B_CONSTRAINT_TEST,
|
||||
B_CONSTRAINT_CHANGETYPE,
|
||||
B_CONSTRAINT_CHANGENAME,
|
||||
B_CONSTRAINT_CHANGETARGET
|
||||
};
|
||||
|
||||
/* *********************** */
|
||||
/* BUTTON BUT: > 4000 */
|
||||
/* BUTTON 4001-4032: layers */
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -41,6 +41,11 @@ typedef struct uiBut uiBut;
|
||||
typedef struct uiBlock uiBlock;
|
||||
|
||||
void uiEmboss(float x1, float y1, float x2, float y2, int sel);
|
||||
void uiRoundBoxEmboss(float minx, float miny, float maxx, float maxy, float rad);
|
||||
void uiRoundBox(float minx, float miny, float maxx, float maxy, float rad);
|
||||
void uiSetRoundBox(int type);
|
||||
void uiRoundRect(float minx, float miny, float maxx, float maxy, float rad);
|
||||
|
||||
void uiDrawMenuBox(float minx, float miny, float maxx, float maxy);
|
||||
void uiTextBoundsBlock(uiBlock *block, int addval);
|
||||
void uiBoundsBlock(struct uiBlock *block, int addval);
|
||||
@ -99,6 +104,7 @@ typedef uiBlock* (*uiBlockFuncFP) (void *arg1);
|
||||
void uiDefBlockBut(uiBlock *block, uiBlockFuncFP func, void *func_arg1, char *str, short x1, short y1, short x2, short y2, char *tip);
|
||||
|
||||
void uiDefIconBlockBut(uiBlock *block, uiBlockFuncFP func, void *func_arg1, int icon, short x1, short y1, short x2, short y2, char *tip);
|
||||
void uiDefIconTextBlockBut(uiBlock *block, uiBlockFuncFP func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip);
|
||||
|
||||
void uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip);
|
||||
|
||||
@ -133,5 +139,12 @@ void uiButSetFunc (uiBut *but, void (*func)(void *arg1, void *arg2), void *arg
|
||||
short pupmenu(char *instr);
|
||||
short pupmenu_col(char *instr, int maxrow);
|
||||
|
||||
extern void uiFreePanels(struct ListBase *lb);
|
||||
extern void uiNewPanel(struct ScrArea *sa, struct uiBlock *block, char *panelname, char *tabname, int ofsx, int ofsy, int sizex, int sizey);
|
||||
extern void uiScalePanelBlock(struct uiBlock *block);
|
||||
extern int uiIsPanelClosed(struct uiBlock *block);
|
||||
extern void uiAnimatePanels(struct ScrArea *sa);
|
||||
extern void uiSetPanel_view2d(struct ScrArea *sa);
|
||||
|
||||
#endif /* BIF_INTERFACE_H */
|
||||
|
||||
|
@ -262,6 +262,8 @@ typedef enum {
|
||||
#define BIFCOLORSHADE_FIRST (COLORSHADE_DARK)
|
||||
COLORSHADE_DARK,
|
||||
COLORSHADE_GREY,
|
||||
COLORSHADE_LGREY,
|
||||
COLORSHADE_LMEDIUM,
|
||||
COLORSHADE_MEDIUM,
|
||||
COLORSHADE_HILITE,
|
||||
COLORSHADE_LIGHT,
|
||||
@ -287,6 +289,15 @@ typedef enum {
|
||||
BUTDPINK,
|
||||
BUTMACTIVE,
|
||||
|
||||
ACTIONBUTCOL,
|
||||
NUMBUTCOL,
|
||||
TEXBUTCOL,
|
||||
TOGBUTCOL,
|
||||
SLIDERCOL,
|
||||
TABCOL,
|
||||
MENUCOL,
|
||||
MENUACTIVECOL,
|
||||
|
||||
BUTIPO,
|
||||
BUTAUDIO,
|
||||
BUTCAMERA,
|
||||
@ -303,6 +314,10 @@ typedef enum {
|
||||
BUTYUCK,
|
||||
BUTSEASICK,
|
||||
BUTCHOKE,
|
||||
|
||||
HEADERCOL,
|
||||
HEADERCOLSEL,
|
||||
|
||||
BUTIMPERIAL,
|
||||
#define BIFCOLORID_LAST (BUTIMPERIAL)
|
||||
#define BIFNCOLORIDS (BIFCOLORID_LAST-BIFCOLORID_FIRST + 1)
|
||||
|
@ -75,7 +75,7 @@ void getmouseco_headwin(short *mval);
|
||||
unsigned short qtest(void);
|
||||
int anyqtest(void);
|
||||
void areawinset(short win);
|
||||
void headerbox(int selcol, int width);
|
||||
void headerbox(struct ScrArea *sa);
|
||||
void defheaddraw(void);
|
||||
void defheadchange(void);
|
||||
unsigned short winqtest(struct ScrArea *sa);
|
||||
@ -103,13 +103,13 @@ int mywinopen(int mode, short posx, short posy, short sizex, short sizey);
|
||||
void setscreen(struct bScreen *sc);
|
||||
void area_fullscreen(void);
|
||||
int select_area(int spacetype);
|
||||
void drawedge(short x1, short y1, short x2, short y2);
|
||||
void drawscreen(void);
|
||||
struct bScreen *default_twosplit(void);
|
||||
void initscreen(void);
|
||||
void unlink_screen(struct bScreen *sc);
|
||||
void reset_autosave(void);
|
||||
int area_is_active_area(struct ScrArea *area);
|
||||
void draw_area_emboss(struct ScrArea *sa);
|
||||
|
||||
/***/
|
||||
|
||||
|
@ -43,6 +43,10 @@ struct BWinEvent;
|
||||
#define OOPS_TEST 2
|
||||
#define REMAKEALLIPO 3 /* Reevan's ipo fixing test */
|
||||
|
||||
#define BUT_HORIZONTAL 1
|
||||
#define BUT_VERTICAL 2
|
||||
|
||||
|
||||
void scrarea_do_windraw (struct ScrArea *sa);
|
||||
void scrarea_do_winchange (struct ScrArea *sa);
|
||||
void scrarea_do_winhandle (struct ScrArea *sa, struct BWinEvent *evt);
|
||||
@ -84,6 +88,8 @@ extern void winqreadnlaspace(struct ScrArea *sa, void *spacedata, struct B
|
||||
extern void winqreadseqspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
|
||||
extern void test_butspace(void);
|
||||
extern void start_game(void);
|
||||
extern void group_menu(void);
|
||||
|
||||
|
||||
#ifdef _WIN32 // FULLSCREEN
|
||||
extern void mainwindow_toggle_fullscreen(int fullscreen);
|
||||
|
@ -40,8 +40,7 @@
|
||||
|
||||
/* **************** MAX ********************* */
|
||||
|
||||
|
||||
#define MAXLAMP 32766
|
||||
#define MAXLAMP 32765
|
||||
/* max length material array, 16 because of bits in matfrom */
|
||||
#define MAXPICKBUF 2000
|
||||
#define MAXSEQ 32
|
||||
@ -244,6 +243,7 @@
|
||||
#define B_POSEMODE 153
|
||||
#define B_TEXTUREPAINT 154
|
||||
#define B_WPAINT 155
|
||||
#define B_MODESELECT 156
|
||||
|
||||
/* IPO: 200 */
|
||||
#define B_IPOHOME 201
|
||||
@ -284,15 +284,21 @@
|
||||
#define B_SETTRANSBUTS 315
|
||||
#define B_DOLANGUIFONT 316
|
||||
|
||||
#define B_UITHEMECHANGED 317
|
||||
#define B_UITHEMECOLORMOD 318
|
||||
#define B_UITHEMERESET 319
|
||||
#define B_UITHEMEIMPORT 320
|
||||
#define B_UITHEMEEXPORT 321
|
||||
|
||||
/* Definitions for the fileselect buttons in user prefs */
|
||||
#define B_FONTDIRFILESEL 320
|
||||
#define B_TEXTUDIRFILESEL 321
|
||||
#define B_PLUGTEXDIRFILESEL 322
|
||||
#define B_PLUGSEQDIRFILESEL 323
|
||||
#define B_RENDERDIRFILESEL 324
|
||||
#define B_PYTHONDIRFILESEL 325
|
||||
#define B_SOUNDDIRFILESEL 326
|
||||
#define B_TEMPDIRFILESEL 327
|
||||
#define B_FONTDIRFILESEL 330
|
||||
#define B_TEXTUDIRFILESEL 331
|
||||
#define B_PLUGTEXDIRFILESEL 332
|
||||
#define B_PLUGSEQDIRFILESEL 333
|
||||
#define B_RENDERDIRFILESEL 334
|
||||
#define B_PYTHONDIRFILESEL 335
|
||||
#define B_SOUNDDIRFILESEL 336
|
||||
#define B_TEMPDIRFILESEL 337
|
||||
/* END Definitions for the fileselect buttons in user prefs */
|
||||
|
||||
/* IMAGE: 350 */
|
||||
@ -366,6 +372,8 @@
|
||||
#define B_KEEPORIG 2
|
||||
#define B_BEAUTY 4
|
||||
#define B_SMOOTH 8
|
||||
#define B_KNIFE 0x80
|
||||
#define B_PERCENTSUBD 0x40
|
||||
|
||||
|
||||
/* ***************** DISPLIST ***************** */
|
||||
|
@ -91,6 +91,7 @@
|
||||
#define UI_RETURN_OK 4
|
||||
#define UI_RETURN_OUT 8
|
||||
#define UI_RETURN 14
|
||||
#define UI_EXIT_LOOP 16
|
||||
|
||||
/* uiBut->flag */
|
||||
#define UI_SELECT 1
|
||||
@ -120,6 +121,10 @@
|
||||
#define UI_EMBOSSM 4 /* Colored Border */
|
||||
#define UI_EMBOSSP 5 /* Borderless coloured button */
|
||||
#define UI_EMBOSSA 6 /* same as EMBOSSX but with arrows to simulate */
|
||||
#define UI_EMBOSSTABL 7
|
||||
#define UI_EMBOSSTABM 8
|
||||
#define UI_EMBOSSTABR 9
|
||||
#define UI_EMBOSST 10
|
||||
|
||||
/* uiBlock->direction */
|
||||
#define UI_TOP 0
|
||||
|
@ -78,6 +78,19 @@ typedef struct ScrEdge {
|
||||
typedef unsigned short dna_ushort_fix;
|
||||
#endif
|
||||
|
||||
|
||||
/* panel->flag */
|
||||
#define PNL_SELECT 1
|
||||
#define PNL_CLOSED 2
|
||||
|
||||
typedef struct Panel { /* the part from uiBlock that needs saved in file */
|
||||
struct Panel *next, *prev;
|
||||
char panelname[64], tabname[64]; /* defined as UI_MAX_NAME_STR */
|
||||
short ofsx, ofsy, sizex, sizey;
|
||||
short flag, pad;
|
||||
int pad2;
|
||||
} Panel;
|
||||
|
||||
typedef struct ScrArea {
|
||||
struct ScrArea *next, *prev;
|
||||
ScrVert *v1, *v2, *v3, *v4;
|
||||
@ -97,16 +110,17 @@ typedef struct ScrArea {
|
||||
|
||||
ListBase spacedata;
|
||||
ListBase uiblocks;
|
||||
ListBase panels;
|
||||
} ScrArea;
|
||||
|
||||
#define MAXWIN 128
|
||||
|
||||
/* If you change EDGEWIDTH, also do the global arrat edcol[] */
|
||||
#define EDGEWIDTH 5
|
||||
#define EDGEWIDTH2 (2)
|
||||
#define EDGEWIDTH 1
|
||||
#define EDGEWIDTH2 0
|
||||
#define AREAGRID 4
|
||||
#define AREAMINX 32
|
||||
#define HEADERY 21
|
||||
#define HEADERY 24
|
||||
#define AREAMINY (HEADERY+EDGEWIDTH)
|
||||
|
||||
#define HEADERDOWN 1
|
||||
|
@ -93,7 +93,7 @@ typedef struct SpaceButs {
|
||||
struct ScrArea *area;
|
||||
|
||||
short cursens, curact;
|
||||
int pad2;
|
||||
short align, pad2; /* align for panels */
|
||||
View2D v2d;
|
||||
|
||||
short mainb, menunr; /* texnr and menunr have to remain shorts */
|
||||
@ -110,12 +110,8 @@ typedef struct SpaceButs {
|
||||
short scriptblock;
|
||||
short scaflag;
|
||||
|
||||
char texact, pad3[7];
|
||||
|
||||
/* a hackish link the anim buts keep
|
||||
* to a SpaceIpo.
|
||||
*/
|
||||
struct SpaceIpo *anim_linked_sipo;
|
||||
char texact, tab[7]; /* storing tabs for each context */
|
||||
|
||||
} SpaceButs;
|
||||
|
||||
typedef struct SpaceSeq {
|
||||
@ -337,7 +333,7 @@ typedef struct SpaceImaSel {
|
||||
#define V3D_LOCAL 2
|
||||
*/
|
||||
|
||||
/* buts->mainb */
|
||||
/* buts->mainb old */
|
||||
#define BUTS_VIEW 0
|
||||
#define BUTS_LAMP 1
|
||||
#define BUTS_MAT 2
|
||||
@ -353,6 +349,27 @@ typedef struct SpaceImaSel {
|
||||
#define BUTS_SOUND 12
|
||||
#define BUTS_CONSTRAINT 13
|
||||
|
||||
/* warning: the values of these defines are used in sbuts->tabs[7] */
|
||||
/* buts->mainb new */
|
||||
#define CONTEXT_SCENE 0
|
||||
#define CONTEXT_OBJECT 1
|
||||
#define CONTEXT_TYPES 2
|
||||
#define CONTEXT_SHADING 3
|
||||
#define CONTEXT_EDITING 4
|
||||
#define CONTEXT_SCRIPT 5
|
||||
#define CONTEXT_LOGIC 6
|
||||
|
||||
/* buts->tab new */
|
||||
#define TAB_SCENE_RENDER 0
|
||||
#define TAB_SCENE_WORLD 1
|
||||
#define TAB_SCENE_SETTINGS 2
|
||||
|
||||
#define TAB_SHADING_MAT 0
|
||||
#define TAB_SHADING_TEX 1
|
||||
#define TAB_SHADING_RAD 2
|
||||
#define TAB_SHADING_WORLD 3
|
||||
#define TAB_SHADING_LAMP 4
|
||||
|
||||
/* buts->scaflag */
|
||||
#define BUTS_SENS_SEL 1
|
||||
#define BUTS_SENS_ACT 2
|
||||
|
@ -97,6 +97,7 @@ typedef struct View3D {
|
||||
short mxo, myo;
|
||||
|
||||
short gridlines, viewbut;
|
||||
short modeselect, pad4, pad5, pad6;
|
||||
int pad2, pad3;
|
||||
} View3D;
|
||||
|
||||
|
@ -1041,7 +1041,7 @@ int make_structDNA(FILE *file)
|
||||
void make_bad_file(char *file)
|
||||
{
|
||||
FILE *fp= fopen(file, "w");
|
||||
fprintf(fp, "NO NO NO! YOUR STUPID STUPID STUPID!\n");
|
||||
fprintf(fp, "ERROR! Cannot make correct DNA.c file\n");
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
166
source/blender/src/butspace.c
Normal file
166
source/blender/src/butspace.c
Normal file
@ -0,0 +1,166 @@
|
||||
/**
|
||||
* $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 *****
|
||||
*/
|
||||
|
||||
#include <time.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
#include "DNA_screen_types.h"
|
||||
#include "DNA_space_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_graphics.h"
|
||||
#include "BIF_keyval.h"
|
||||
#include "BIF_mainqueue.h"
|
||||
#include "BIF_resources.h"
|
||||
#include "BIF_screen.h"
|
||||
#include "BIF_mywindow.h"
|
||||
#include "BIF_space.h"
|
||||
#include "BIF_glutil.h"
|
||||
#include "BIF_interface.h"
|
||||
|
||||
#include "BIF_butspace.h"
|
||||
|
||||
/* here the calls for building the button main/tabs tree */
|
||||
|
||||
|
||||
static void context_scene_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
if(sbuts->tab[CONTEXT_SCENE] == TAB_SCENE_RENDER)
|
||||
render_panels();
|
||||
|
||||
}
|
||||
|
||||
static void context_object_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
static void context_types_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
static void context_shading_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
static void context_editing_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
static void context_logic_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
static void context_script_buttons(ScrArea *sa, SpaceButs *sbuts)
|
||||
{
|
||||
|
||||
/* select tabs */
|
||||
|
||||
}
|
||||
|
||||
/* callback */
|
||||
void drawbutspace(ScrArea *sa, void *spacedata)
|
||||
{
|
||||
SpaceButs *sbuts= sa->spacedata.first;
|
||||
View2D *v2d= &sbuts->v2d;
|
||||
|
||||
myortho2(v2d->cur.xmin, v2d->cur.xmax, v2d->cur.ymin, v2d->cur.ymax);
|
||||
|
||||
glClearColor(0.73, 0.73, 0.73, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
uiFreeBlocksWin(&sa->uiblocks, sa->win);
|
||||
|
||||
/* select the context to be drawn, per contex/tab the actual context is tested */
|
||||
switch(sbuts->mainb) {
|
||||
case CONTEXT_SCENE:
|
||||
context_scene_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_OBJECT:
|
||||
context_object_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_TYPES:
|
||||
context_types_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_SHADING:
|
||||
context_shading_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_EDITING:
|
||||
context_editing_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_SCRIPT:
|
||||
context_script_buttons(sa, sbuts);
|
||||
break;
|
||||
case CONTEXT_LOGIC:
|
||||
context_logic_buttons(sa, sbuts);
|
||||
break;
|
||||
}
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
myortho2(-0.5, (float)(sa->winx)-.05, -0.5, (float)(sa->winy)-0.5);
|
||||
draw_area_emboss(sa);
|
||||
myortho2(v2d->cur.xmin, v2d->cur.xmax, v2d->cur.ymin, v2d->cur.ymax);
|
||||
|
||||
/* always in end */
|
||||
sa->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
@ -7299,7 +7299,7 @@ static void do_constraintbuts(unsigned short event)
|
||||
|
||||
/* ***************************<>******************************** */
|
||||
|
||||
void drawbutspace(ScrArea *sa, void *spacedata)
|
||||
void drawbutspace_old(ScrArea *sa, void *spacedata)
|
||||
{
|
||||
SpaceButs *sbuts= curarea->spacedata.first;
|
||||
View2D *v2d= &sbuts->v2d;
|
||||
|
922
source/blender/src/buttons_scene.c
Normal file
922
source/blender/src/buttons_scene.c
Normal file
@ -0,0 +1,922 @@
|
||||
/**
|
||||
* $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 *****
|
||||
*/
|
||||
|
||||
#include <time.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
#include "DNA_screen_types.h"
|
||||
#include "DNA_space_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_library.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
|
||||
#include "BSE_filesel.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_graphics.h"
|
||||
#include "BIF_keyval.h"
|
||||
#include "BIF_mainqueue.h"
|
||||
#include "BIF_resources.h"
|
||||
#include "BIF_screen.h"
|
||||
#include "BIF_mywindow.h"
|
||||
#include "BIF_space.h"
|
||||
#include "BIF_glutil.h"
|
||||
#include "BIF_interface.h"
|
||||
#include "BIF_toolbox.h"
|
||||
|
||||
#include "BIF_butspace.h"
|
||||
|
||||
#include "interface.h"
|
||||
#include "mydevice.h"
|
||||
#include "blendef.h"
|
||||
|
||||
/* -----includes for this file specific----- */
|
||||
|
||||
#include "render.h"
|
||||
#include "DNA_image_types.h"
|
||||
#include "BKE_writeavi.h"
|
||||
#include "BKE_image.h"
|
||||
#include "BIF_renderwin.h"
|
||||
#include "BIF_writeimage.h"
|
||||
#include "BIF_writeavicodec.h"
|
||||
|
||||
#ifdef WITH_QUICKTIME
|
||||
#include "quicktime_export.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* here the calls for scene buttons
|
||||
- render
|
||||
- world
|
||||
- anim settings, audio
|
||||
*/
|
||||
|
||||
static void output_pic(char *name)
|
||||
{
|
||||
strcpy(G.scene->r.pic, name);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
}
|
||||
|
||||
static void backbuf_pic(char *name)
|
||||
{
|
||||
Image *ima;
|
||||
|
||||
strcpy(G.scene->r.backbuf, name);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
|
||||
ima= add_image(name);
|
||||
if(ima) {
|
||||
free_image_buffers(ima); /* force read again */
|
||||
ima->ok= 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void ftype_pic(char *name)
|
||||
{
|
||||
strcpy(G.scene->r.ftype, name);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
}
|
||||
|
||||
|
||||
static void scene_change_set(Scene *sc, Scene *set) {
|
||||
if (sc->set!=set) {
|
||||
sc->set= set;
|
||||
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void run_playanim(char *file) {
|
||||
extern char bprogname[]; /* usiblender.c */
|
||||
char str[FILE_MAXDIR+FILE_MAXFILE];
|
||||
int pos[2], size[2];
|
||||
|
||||
calc_renderwin_rectangle(R.winpos, pos, size);
|
||||
|
||||
sprintf(str, "%s -a -p %d %d \"%s\"", bprogname, pos[0], pos[1], file);
|
||||
system(str);
|
||||
}
|
||||
|
||||
void do_render_panels(unsigned short event)
|
||||
{
|
||||
ScrArea *sa;
|
||||
ID *id;
|
||||
char file[FILE_MAXDIR+FILE_MAXFILE];
|
||||
|
||||
switch(event) {
|
||||
|
||||
case B_DORENDER:
|
||||
BIF_do_render(0);
|
||||
break;
|
||||
case B_RTCHANGED:
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
case B_PLAYANIM:
|
||||
#ifdef WITH_QUICKTIME
|
||||
if(G.scene->r.imtype == R_QUICKTIME)
|
||||
makeqtstring(file);
|
||||
else
|
||||
#endif
|
||||
makeavistring(file);
|
||||
if(BLI_exist(file)) {
|
||||
run_playanim(file);
|
||||
}
|
||||
else {
|
||||
makepicstring(file, G.scene->r.sfra);
|
||||
if(BLI_exist(file)) {
|
||||
run_playanim(file);
|
||||
}
|
||||
else error("Can't find image: %s", file);
|
||||
}
|
||||
break;
|
||||
|
||||
case B_DOANIM:
|
||||
BIF_do_render(1);
|
||||
break;
|
||||
|
||||
case B_FS_PIC:
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT OUTPUT PICTURES", G.scene->r.pic, output_pic);
|
||||
break;
|
||||
case B_FS_BACKBUF:
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT BACKBUF PICTURE", G.scene->r.backbuf, backbuf_pic);
|
||||
break;
|
||||
case B_IS_BACKBUF:
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
activate_imageselect(FILE_SPECIAL, "SELECT BACKBUF PICTURE", G.scene->r.backbuf, backbuf_pic);
|
||||
break;
|
||||
case B_FS_FTYPE:
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT FTYPE", G.scene->r.ftype, ftype_pic);
|
||||
break;
|
||||
case B_IS_FTYPE:
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
activate_imageselect(FILE_SPECIAL, "SELECT FTYPE", G.scene->r.ftype, ftype_pic);
|
||||
break;
|
||||
|
||||
case B_PR_PAL:
|
||||
G.scene->r.xsch= 720;
|
||||
G.scene->r.ysch= 576;
|
||||
G.scene->r.xasp= 54;
|
||||
G.scene->r.yasp= 51;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.frs_sec= 25;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
break;
|
||||
|
||||
#ifdef WITH_QUICKTIME
|
||||
case B_FILETYPEMENU:
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
#if defined (_WIN32) || defined (__APPLE__)
|
||||
// fall through to codec settings if this is the first
|
||||
// time R_AVICODEC is selected for this scene.
|
||||
if (((G.scene->r.imtype == R_AVICODEC)
|
||||
&& (G.scene->r.avicodecdata == NULL)) ||
|
||||
((G.scene->r.imtype == R_QUICKTIME)
|
||||
&& (G.scene->r.qtcodecdata == NULL))) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
#else /* libquicktime */
|
||||
if(G.scene->r.imtype == R_QUICKTIME) {
|
||||
/* i'm not sure if this should be here... */
|
||||
/* set default quicktime codec */
|
||||
if (!G.scene->r.qtcodecdata) {
|
||||
G.scene->r.qtcodecdata = MEM_callocN(sizeof(QtCodecData),
|
||||
"QtCodecData");
|
||||
qtcodec_idx = 1;
|
||||
}
|
||||
|
||||
qt_init_codecs();
|
||||
if (qtcodec_idx < 1) qtcodec_idx = 1;
|
||||
|
||||
G.scene->r.qtcodecdata->fourcc =
|
||||
qtcodecidx_to_fcc(qtcodec_idx-1);
|
||||
qt_init_codecdata(G.scene->r.qtcodecdata);
|
||||
/* I'm not sure if this is really needed, so don't remove it yet */
|
||||
#if 0
|
||||
/* get index of codec that can handle a given fourcc */
|
||||
if (qtcodec_idx < 1)
|
||||
qtcodec_idx = get_qtcodec_idx(G.scene->r.qtcodecdata->fourcc)+1;
|
||||
|
||||
/* no suitable codec found, alert user */
|
||||
if (qtcodec_idx < -1) {
|
||||
error("no suitable codec found!");
|
||||
qtcodec_idx = 1;
|
||||
}
|
||||
#endif /* 0 */
|
||||
}
|
||||
#endif /*_WIN32 || __APPLE__ */
|
||||
|
||||
case B_SELECTCODEC:
|
||||
#if defined (_WIN32) || defined (__APPLE__)
|
||||
if ((G.scene->r.imtype == R_QUICKTIME)) /* || (G.scene->r.qtcodecdata)) */
|
||||
get_qtcodec_settings();
|
||||
#ifdef _WIN32
|
||||
else
|
||||
get_avicodec_settings();
|
||||
#endif /* _WIN32 */
|
||||
#else /* libquicktime */
|
||||
if (!G.scene->r.qtcodecdata) {
|
||||
G.scene->r.qtcodecdata = MEM_callocN(sizeof(QtCodecData),
|
||||
"QtCodecData");
|
||||
qtcodec_idx = 1;
|
||||
}
|
||||
if (qtcodec_idx < 1) {
|
||||
qtcodec_idx = 1;
|
||||
qt_init_codecs();
|
||||
}
|
||||
|
||||
G.scene->r.qtcodecdata->fourcc = qtcodecidx_to_fcc(qtcodec_idx-1);
|
||||
/* if the selected codec differs from the previous one, reinit it */
|
||||
qt_init_codecdata(G.scene->r.qtcodecdata);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
#endif /* _WIN32 || __APPLE__ */
|
||||
break;
|
||||
#endif /* WITH_QUICKTIME */
|
||||
|
||||
case B_PR_FULL:
|
||||
G.scene->r.xsch= 1280;
|
||||
G.scene->r.ysch= 1024;
|
||||
G.scene->r.xasp= 1;
|
||||
G.scene->r.yasp= 1;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
break;
|
||||
case B_PR_PRV:
|
||||
G.scene->r.xsch= 640;
|
||||
G.scene->r.ysch= 512;
|
||||
G.scene->r.xasp= 1;
|
||||
G.scene->r.yasp= 1;
|
||||
G.scene->r.size= 50;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_CDI:
|
||||
G.scene->r.xsch= 384;
|
||||
G.scene->r.ysch= 280;
|
||||
G.scene->r.xasp= 1;
|
||||
G.scene->r.yasp= 1;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.15, 0.85, 0.15, 0.85);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_PAL169:
|
||||
G.scene->r.xsch= 720;
|
||||
G.scene->r.ysch= 576;
|
||||
G.scene->r.xasp= 64;
|
||||
G.scene->r.yasp= 45;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.frs_sec= 25;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_D2MAC:
|
||||
G.scene->r.xsch= 1024;
|
||||
G.scene->r.ysch= 576;
|
||||
G.scene->r.xasp= 1;
|
||||
G.scene->r.yasp= 1;
|
||||
G.scene->r.size= 50;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_MPEG:
|
||||
G.scene->r.xsch= 368;
|
||||
G.scene->r.ysch= 272;
|
||||
G.scene->r.xasp= 105;
|
||||
G.scene->r.yasp= 100;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_PC:
|
||||
G.scene->r.xsch= 640;
|
||||
G.scene->r.ysch= 480;
|
||||
G.scene->r.xasp= 100;
|
||||
G.scene->r.yasp= 100;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.0, 1.0, 0.0, 1.0);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_PRESET:
|
||||
G.scene->r.xsch= 720;
|
||||
G.scene->r.ysch= 576;
|
||||
G.scene->r.xasp= 54;
|
||||
G.scene->r.yasp= 51;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode= R_OSA+R_SHADOW+R_FIELDS;
|
||||
G.scene->r.imtype= R_TARGA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_PANO:
|
||||
G.scene->r.xsch= 36;
|
||||
G.scene->r.ysch= 176;
|
||||
G.scene->r.xasp= 115;
|
||||
G.scene->r.yasp= 100;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.mode |= R_PANORAMA;
|
||||
G.scene->r.xparts= 16;
|
||||
G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
break;
|
||||
case B_PR_NTSC:
|
||||
G.scene->r.xsch= 720;
|
||||
G.scene->r.ysch= 480;
|
||||
G.scene->r.xasp= 10;
|
||||
G.scene->r.yasp= 11;
|
||||
G.scene->r.size= 100;
|
||||
G.scene->r.frs_sec= 30;
|
||||
G.scene->r.mode &= ~R_PANORAMA;
|
||||
G.scene->r.xparts= G.scene->r.yparts= 1;
|
||||
|
||||
BLI_init_rctf(&G.scene->r.safety, 0.1, 0.9, 0.1, 0.9);
|
||||
allqueue(REDRAWBUTSRENDER, 0);
|
||||
allqueue(REDRAWVIEWCAM, 0);
|
||||
break;
|
||||
|
||||
case B_SETBROWSE:
|
||||
id= (ID*) G.scene->set;
|
||||
|
||||
if (G.buts->menunr==-2) {
|
||||
activate_databrowse(id, ID_SCE, 0, B_SETBROWSE, &G.buts->menunr, do_render_panels);
|
||||
} else if (G.buts->menunr>0) {
|
||||
Scene *newset= (Scene*) BLI_findlink(&G.main->scene, G.buts->menunr-1);
|
||||
|
||||
if (newset==G.scene)
|
||||
error("Not allowed");
|
||||
else if (newset)
|
||||
scene_change_set(G.scene, newset);
|
||||
}
|
||||
break;
|
||||
case B_CLEARSET:
|
||||
scene_change_set(G.scene, NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uiBlock *edge_render_menu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks,
|
||||
"edge render", UI_EMBOSSX, UI_HELV,
|
||||
curarea->win);
|
||||
|
||||
/* use this for a fake extra empy space around the buttons */
|
||||
uiDefBut(block, LABEL, 0, "",
|
||||
/* 285, -20, 230, 100, NULL, */
|
||||
285, -20, 230, 120, NULL,
|
||||
0, 0, 0, 0, "");
|
||||
|
||||
uiDefButS(block, NUM, 0,"Eint:",
|
||||
295,50,70,19,
|
||||
&G.scene->r.edgeint, 0.0, 255.0, 0, 0,
|
||||
"Sets edge intensity for Toon shading");
|
||||
uiBlockSetCol(block, BUTGREEN);
|
||||
uiDefButI(block, TOG, 0,"Shift",
|
||||
365,50,70,19,
|
||||
&G.compat, 0, 0, 0, 0,
|
||||
"For unified renderer: use old offsets for edges");
|
||||
uiDefButI(block, TOG, 0,"All", 435,50,70,19,
|
||||
&G.notonlysolid, 0, 0, 0, 0,
|
||||
"For unified renderer: also consider transparent "
|
||||
"faces for toon shading");
|
||||
|
||||
/* colour settings for the toon shading */
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
uiDefButF(block, COL, B_EDGECOLSLI, "",
|
||||
295,-10,30,60,
|
||||
&(G.scene->r.edgeR), 0, 0, 0, 0,
|
||||
"");
|
||||
|
||||
uiDefButF(block, NUMSLI, 0, "R ",
|
||||
325, 30, 180,19,
|
||||
&G.scene->r.edgeR, 0.0, 1.0, B_EDGECOLSLI, 0,
|
||||
"For unified renderer: Colour for edges in toon shading mode.");
|
||||
uiDefButF(block, NUMSLI, 0, "G ",
|
||||
325, 10, 180,19,
|
||||
&G.scene->r.edgeG, 0.0, 1.0, B_EDGECOLSLI, 0,
|
||||
"For unified renderer: Colour for edges in toon shading mode.");
|
||||
uiDefButF(block, NUMSLI, 0, "B ",
|
||||
325, -10, 180,19,
|
||||
&G.scene->r.edgeB, 0.0, 1.0, B_EDGECOLSLI, 0,
|
||||
"For unified renderer: Colour for edges in toon shading mode.");
|
||||
|
||||
uiDefButS(block, NUM, 0,"AntiShift",
|
||||
365,70,140,19,
|
||||
&(G.scene->r.same_mat_redux), 0, 255.0, 0, 0,
|
||||
"For unified renderer: reduce intensity on boundaries "
|
||||
"with identical materials with this number.");
|
||||
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
static uiBlock *post_render_menu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "post render", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
|
||||
/* use this for a fake extra empy space around the buttons */
|
||||
uiDefBut(block, LABEL, 0, "", -10, 10, 200, 80, NULL, 0, 0, 0, 0, "");
|
||||
|
||||
uiDefButF(block, NUMSLI, 0,"Add:", 0,60,180,19,
|
||||
&G.scene->r.postadd, -1.0, 1.0, 0, 0, "");
|
||||
uiDefButF(block, NUMSLI, 0,"Mul:", 0,40,180,19,
|
||||
&G.scene->r.postmul, 0.01, 4.0, 0, 0, "");
|
||||
uiDefButF(block, NUMSLI, 0,"Gamma:", 0,20,180,19,
|
||||
&G.scene->r.postgamma, 0.2, 2.0, 0, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
static uiBlock *framing_render_menu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 60, xco = 0;
|
||||
int randomcolorindex = 1234;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "framing_options", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
|
||||
/* use this for a fake extra empy space around the buttons */
|
||||
uiDefBut(block, LABEL, 0, "", -10, -10, 300, 100, NULL, 0, 0, 0, 0, "");
|
||||
|
||||
uiDefBut(block, LABEL, B_NOP, "Framing:", xco, yco, 68,19, 0, 0, 0, 0, 0, "");
|
||||
uiDefButC(block, ROW, 0, "Stretch", xco += 70, yco, 68, 19, &G.scene->framing.type, 1.0, SCE_GAMEFRAMING_SCALE , 0, 0, "Stretch or squeeze the viewport to fill the display window");
|
||||
uiDefButC(block, ROW, 0, "Expose", xco += 70, yco, 68, 19, &G.scene->framing.type, 1.0, SCE_GAMEFRAMING_EXTEND, 0, 0, "Show the entire viewport in the display window, viewing more horizontally or vertically");
|
||||
uiDefButC(block, ROW, 0, "Bars", xco += 70, yco, 68, 19, &G.scene->framing.type, 1.0, SCE_GAMEFRAMING_BARS , 0, 0, "Show the entire viewport in the display window, using bar horizontally or vertically");
|
||||
|
||||
yco -= 20;
|
||||
xco = 35;
|
||||
|
||||
uiDefButF(block, COL, randomcolorindex, "", 0, yco - 58 + 18, 33, 58, &G.scene->framing.col[0], 0, 0, 0, 0, "");
|
||||
|
||||
uiDefButF(block, NUMSLI, 0, "R ", xco,yco,243,18, &G.scene->framing.col[0], 0.0, 1.0, randomcolorindex, 0, "Set the red component of the bars");
|
||||
yco -= 20;
|
||||
uiDefButF(block, NUMSLI, 0, "G ", xco,yco,243,18, &G.scene->framing.col[1], 0.0, 1.0, randomcolorindex, 0, "Set the green component of the bars");
|
||||
yco -= 20;
|
||||
uiDefButF(block, NUMSLI, 0, "B ", xco,yco,243,18, &G.scene->framing.col[2], 0.0, 1.0, randomcolorindex, 0, "Set the blue component of the bars");
|
||||
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
static char *imagetype_pup(void)
|
||||
{
|
||||
static char string[1024];
|
||||
char formatstring[1024];
|
||||
|
||||
strcpy(formatstring, "Save image as: %%t|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d|%s %%x%d");
|
||||
|
||||
#ifdef __sgi
|
||||
strcat(formatstring, "|%s %%x%d"); // add space for Movie
|
||||
#endif
|
||||
|
||||
strcat(formatstring, "|%s %%x%d"); // add space for PNG
|
||||
|
||||
#ifdef _WIN32
|
||||
strcat(formatstring, "|%s %%x%d"); // add space for AVI Codec
|
||||
#endif
|
||||
|
||||
#ifdef WITH_QUICKTIME
|
||||
if(G.have_quicktime)
|
||||
strcat(formatstring, "|%s %%x%d"); // add space for Quicktime
|
||||
#endif
|
||||
|
||||
if(G.have_quicktime) {
|
||||
sprintf(string, formatstring,
|
||||
"AVI Raw", R_AVIRAW,
|
||||
"AVI Jpeg", R_AVIJPEG,
|
||||
#ifdef _WIN32
|
||||
"AVI Codec", R_AVICODEC,
|
||||
#endif
|
||||
#ifdef WITH_QUICKTIME
|
||||
"QuickTime", R_QUICKTIME,
|
||||
#endif
|
||||
"Targa", R_TARGA,
|
||||
"Targa Raw", R_RAWTGA,
|
||||
"PNG", R_PNG,
|
||||
"Jpeg", R_JPEG90,
|
||||
"HamX", R_HAMX,
|
||||
"Iris", R_IRIS,
|
||||
"Iris + Zbuffer", R_IRIZ,
|
||||
"Ftype", R_FTYPE,
|
||||
"Movie", R_MOVIE
|
||||
);
|
||||
} else {
|
||||
sprintf(string, formatstring,
|
||||
"AVI Raw", R_AVIRAW,
|
||||
"AVI Jpeg", R_AVIJPEG,
|
||||
#ifdef _WIN32
|
||||
"AVI Codec", R_AVICODEC,
|
||||
#endif
|
||||
"Targa", R_TARGA,
|
||||
"Targa Raw", R_RAWTGA,
|
||||
"PNG", R_PNG,
|
||||
"Jpeg", R_JPEG90,
|
||||
"HamX", R_HAMX,
|
||||
"Iris", R_IRIS,
|
||||
"Iris + Zbuffer", R_IRIZ,
|
||||
"Ftype", R_FTYPE,
|
||||
"Movie", R_MOVIE
|
||||
);
|
||||
}
|
||||
|
||||
return (string);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
static char *avicodec_str(void)
|
||||
{
|
||||
static char string[1024];
|
||||
|
||||
sprintf(string, "Codec: %s", G.scene->r.avicodecdata->avicodecname);
|
||||
|
||||
return string;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void test_scenepoin_but(char *name, ID **idpp)
|
||||
{
|
||||
ID *id;
|
||||
|
||||
if( *idpp ) (*idpp)->us--;
|
||||
|
||||
id= G.main->scene.first;
|
||||
while(id) {
|
||||
if( strcmp(name, id->name+2)==0 ) {
|
||||
*idpp= id;
|
||||
id_us_plus(id);
|
||||
return;
|
||||
}
|
||||
id= id->next;
|
||||
}
|
||||
*idpp= 0;
|
||||
}
|
||||
|
||||
static void render_panel_output()
|
||||
{
|
||||
ID *id;
|
||||
int a,b;
|
||||
uiBlock *block;
|
||||
char *strp;
|
||||
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "render_panel_output", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
uiNewPanel(curarea, block, "Output", "Render", 0, 0, 318, 204);
|
||||
if( uiIsPanelClosed(block) ) return; // does draw when closed
|
||||
|
||||
uiDefBut(block, TEX,0,"", 30, 170, 268, 19,G.scene->r.pic, 0.0,79.0, 0, 0, "Directory/name to save rendered Pics to");
|
||||
uiDefBut(block, BUT,B_FS_PIC," ", 8, 170, 20, 19, 0, 0, 0, 0, 0, "Open Fileselect to get Pics dir/name");
|
||||
uiDefBut(block, TEX,0,"", 30, 148, 268, 19,G.scene->r.backbuf, 0.0,79.0, 0, 0, "Image to use as background for rendering");
|
||||
uiDefBut(block, BUT,B_FS_BACKBUF," ", 15, 148, 10, 19, 0, 0, 0, 0, 0, "Open Fileselect to get Backbuf image");
|
||||
uiDefBut(block, TEX,0,"", 30, 125, 268, 19,G.scene->r.ftype,0.0,79.0, 0, 0, "Image to use with FTYPE Image type");
|
||||
uiDefBut(block, BUT,B_FS_FTYPE," ", 15, 125, 10, 19, 0, 0, 0, 0, 0, "Open Fileselect to get Ftype image");
|
||||
uiDefIconBut(block, BUT, B_CLEARSET, ICON_X, 131, 95, 20, 19, 0, 0, 0, 0, 0, "Remove Set link");
|
||||
uiBlockSetCol(block, BUTSALMON);
|
||||
uiDefBut(block, BUT,B_IS_BACKBUF," ", 8, 148, 10, 19, 0, 0, 0, 0, 0, "Open Imageselect to get Backbuf image");
|
||||
uiDefBut(block, BUT,B_IS_FTYPE," ", 8, 125, 10, 19, 0, 0, 0, 0, 0, "Open Imageselect to get Ftype image");
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
|
||||
/* SET BUTTON */
|
||||
id= (ID *)G.scene->set;
|
||||
IDnames_to_pupstring(&strp, NULL, NULL, &(G.main->scene), id, &(G.buts->menunr));
|
||||
if(strp[0])
|
||||
uiDefButS(block, MENU, B_SETBROWSE, strp, 8, 96, 20, 19, &(G.buts->menunr), 0, 0, 0, 0, "Scene to link as a Set");
|
||||
MEM_freeN(strp);
|
||||
|
||||
uiBlockSetCol(block, BUTBLUE);
|
||||
|
||||
if(G.scene->set) {
|
||||
uiSetButLock(1, NULL);
|
||||
uiDefIDPoinBut(block, test_scenepoin_but, 0, "", 25, 97, 104, 19, &(G.scene->set), "Name of the Set");
|
||||
uiClearButLock();
|
||||
}
|
||||
|
||||
|
||||
uiDefButS(block, TOG|BIT|0, 0,"Backbuf", 8, 70, 62, 19, &G.scene->r.bufflag, 0, 0, 0, 0, "Enable/Disable use of Backbuf image");
|
||||
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
|
||||
for(b=0; b<3; b++)
|
||||
for(a=0; a<3; a++)
|
||||
uiDefButS(block, TOG|BIT|(3*b+a), 800,"", (short)(9+18*a),(short)(7+12*b),16,10, &R.winpos, 0, 0, 0, 0, "Render window placement on screen");
|
||||
|
||||
uiDefButS(block, ROW, B_REDR, "DispView", 72, 7, 65, 19, &R.displaymode, 0.0, (float)R_DISPLAYVIEW, 0, 0, "Sets render output to display in 3D view");
|
||||
uiDefButS(block, ROW, B_REDR, "DispWin", 139, 7, 62, 19, &R.displaymode, 0.0, (float)R_DISPLAYWIN, 0, 0, "Sets render output to display in a seperate window");
|
||||
|
||||
uiDefButS(block, TOG|BIT|4, 0, "Extensions", 228, 8, 67, 18, &G.scene->r.scemode, 0.0, 0.0, 0, 0, "Adds extensions to the output when rendering animations");
|
||||
|
||||
/* Toon shading buttons */
|
||||
uiDefButS(block, TOG|BIT|5, 0,"Edge", 154, 70, 47, 19, &G.scene->r.mode, 0, 0, 0, 0, "Enable Toon shading");
|
||||
uiDefBlockBut(block, edge_render_menu, NULL, "Edge Settings |>> ", 204, 71, 93, 19, "Display edge settings");
|
||||
|
||||
/* unified render buttons */
|
||||
if(G.scene->r.mode & R_UNIFIED) {
|
||||
uiDefBlockBut(block, post_render_menu, NULL, "Post process |>> ", 205, 48, 92, 19, "Only for unified render");
|
||||
if (G.scene->r.mode & R_GAMMA) {
|
||||
uiDefButF(block, NUMSLI, 0,"Gamma:", 8, 48, 143, 19,
|
||||
&(G.scene->r.gamma), 0.2, 5.0, B_GAMMASLI, 0,
|
||||
"The gamma value for blending oversampled images (1.0 = no correction).");
|
||||
}
|
||||
}
|
||||
|
||||
uiScalePanelBlock(block); // scales and centers
|
||||
uiDrawBlock(block);
|
||||
}
|
||||
|
||||
static void render_panel_render()
|
||||
{
|
||||
uiBlock *block;
|
||||
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "render_panel_render", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
uiNewPanel(curarea, block, "Render", "Render", 320, 0, 318, 204);
|
||||
if( uiIsPanelClosed(block) ) return; // does draw when closed
|
||||
|
||||
uiBlockSetCol(block, BUTSALMON);
|
||||
|
||||
uiDefBut(block, BUT,B_DORENDER,"RENDER", 369,142,192,47, 0, 0, 0, 0, 0, "Start the rendering");
|
||||
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
|
||||
uiDefButS(block, TOG|BIT|0, 0, "OSA", 369,114,124,20,&G.scene->r.mode, 0, 0, 0, 0, "Enables Oversampling (Anti-aliasing)");
|
||||
uiDefButF(block, NUM,B_DIFF,"Bf:", 495,90,65,20,&G.scene->r.blurfac, 0.01, 5.0, 10, 0, "Sets motion blur factor");
|
||||
uiDefButS(block, TOG|BIT|14, 0, "MBLUR", 495,114,66,20,&G.scene->r.mode, 0, 0, 0, 0, "Enables Motion Blur calculation");
|
||||
|
||||
uiDefButS(block, ROW,B_DIFF,"5", 369,90,29,20,&G.scene->r.osa,2.0,5.0, 0, 0, "Sets oversample level to 5");
|
||||
uiDefButS(block, ROW,B_DIFF,"8", 400,90,29,20,&G.scene->r.osa,2.0,8.0, 0, 0, "Sets oversample level to 8 (Recommended)");
|
||||
uiDefButS(block, ROW,B_DIFF,"11", 431,90,33,20,&G.scene->r.osa,2.0,11.0, 0, 0, "Sets oversample level to 11");
|
||||
uiDefButS(block, ROW,B_DIFF,"16", 466,90,28,20,&G.scene->r.osa,2.0,16.0, 0, 0, "Sets oversample level to 16");
|
||||
|
||||
uiDefButS(block, NUM,B_DIFF,"Xparts:", 369,42,99,31,&G.scene->r.xparts,1.0, 64.0, 0, 0, "Sets the number of horizontal parts to render image in (For panorama sets number of camera slices)");
|
||||
uiDefButS(block, NUM,B_DIFF,"Yparts:", 472,42,86,31,&G.scene->r.yparts,1.0, 64.0, 0, 0, "Sets the number of vertical parts to render image in");
|
||||
|
||||
uiDefButS(block, ROW,800,"Sky", 369,11,38,24,&G.scene->r.alphamode,3.0,0.0, 0, 0, "Fill background with sky");
|
||||
uiDefButS(block, ROW,800,"Premul", 410,11,54,24,&G.scene->r.alphamode,3.0,1.0, 0, 0, "Multiply alpha in advance");
|
||||
uiDefButS(block, ROW,800,"Key", 467,11,44,24,&G.scene->r.alphamode,3.0,2.0, 0, 0, "Alpha and colour values remain unchanged");
|
||||
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
uiDefButS(block, TOG|BIT|1,0,"Shadow", 565,167,61,22, &G.scene->r.mode, 0, 0, 0, 0, "Enable shadow calculation");
|
||||
uiDefButS(block, TOG|BIT|4,0,"EnvMap", 626,167,61,22, &G.scene->r.mode, 0, 0, 0, 0, "Enable environment map renering");
|
||||
uiDefButS(block, TOG|BIT|10,0,"Pano", 565,142,61,22, &G.scene->r.mode, 0, 0, 0, 0, "Enable panorama rendering (output width is multiplied by Xparts)");
|
||||
uiDefButS(block, TOG|BIT|8,0,"Radio", 626,142,61,22, &G.scene->r.mode, 0, 0, 0, 0, "Enable radiosity rendering");
|
||||
|
||||
uiDefButS(block, ROW,B_DIFF,"100%", 565,114,121,20,&G.scene->r.size,1.0,100.0, 0, 0, "Set render size to defined size");
|
||||
uiDefButS(block, ROW,B_DIFF,"75%", 565,90,36,20,&G.scene->r.size,1.0,75.0, 0, 0, "Set render size to 3/4 of defined size");
|
||||
uiDefButS(block, ROW,B_DIFF,"50%", 604,90,40,20,&G.scene->r.size,1.0,50.0, 0, 0, "Set render size to 1/2 of defined size");
|
||||
uiDefButS(block, ROW,B_DIFF,"25%", 647,90,39,20,&G.scene->r.size,1.0,25.0, 0, 0, "Set render size to 1/4 of defined size");
|
||||
|
||||
uiDefButS(block, TOG|BIT|6,0,"Fields", 564,42,90,31,&G.scene->r.mode, 0, 0, 0, 0, "Enables field rendering");
|
||||
|
||||
uiDefButS(block, TOG|BIT|13,0,"Odd", 655,57,30,16,&G.scene->r.mode, 0, 0, 0, 0, "Enables Odd field first rendering (Default: Even field)");
|
||||
uiDefButS(block, TOG|BIT|7,0,"x", 655,42,30,15,&G.scene->r.mode, 0, 0, 0, 0, "Disables time difference in field calculations");
|
||||
|
||||
uiDefButS(block, TOG|BIT|9,REDRAWVIEWCAM, "Border", 565,11,58,24, &G.scene->r.mode, 0, 0, 0, 0, "Render a small cut-out of the image");
|
||||
uiDefButS(block, TOG|BIT|2,0, "Gamma", 626,11,58,24, &G.scene->r.mode, 0, 0, 0, 0, "Enable gamma correction");
|
||||
|
||||
|
||||
uiScalePanelBlock(block); // scales and centers
|
||||
uiDrawBlock(block);
|
||||
}
|
||||
|
||||
static void render_panel_anim()
|
||||
{
|
||||
uiBlock *block;
|
||||
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "render_panel_anim", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
uiNewPanel(curarea, block, "Anim", "Render", 640, 0, 318, 204);
|
||||
if( uiIsPanelClosed(block) ) return; // does draw when closed
|
||||
|
||||
|
||||
uiBlockSetCol(block, BUTSALMON);
|
||||
uiDefBut(block, BUT,B_DOANIM,"ANIM", 692,142,192,47, 0, 0, 0, 0, 0, "Start rendering a sequence");
|
||||
|
||||
uiBlockSetCol(block, BUTBLUE);
|
||||
|
||||
uiDefButS(block, TOG|BIT|0, 0, "Do Sequence", 692,114,192,20, &G.scene->r.scemode, 0, 0, 0, 0, "Enables sequence output rendering (Default: 3D rendering)");
|
||||
uiDefButS(block, TOG|BIT|1, 0, "Render Daemon", 692,90,192,20, &G.scene->r.scemode, 0, 0, 0, 0, "Let external network render current scene");
|
||||
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
uiDefBut(block, BUT,B_PLAYANIM, "PLAY", 692,40,94,33, 0, 0, 0, 0, 0, "Play animation of rendered images/avi (searches Pics: field)");
|
||||
uiDefButS(block, NUM, B_RTCHANGED, "rt:", 790,40,95,33, &G.rt, 0.0, 256.0, 0, 0, "General testing/debug button");
|
||||
|
||||
uiDefButS(block, NUM,REDRAWSEQ,"Sta:", 692,10,94,24, &G.scene->r.sfra,1.0,18000.0, 0, 0, "The start frame of the animation");
|
||||
uiDefButS(block, NUM,REDRAWSEQ,"End:", 790,10,95,24, &G.scene->r.efra,1.0,18000.0, 0, 0, "The end frame of the animation");
|
||||
|
||||
uiScalePanelBlock(block); // scales and centers
|
||||
uiDrawBlock(block);
|
||||
}
|
||||
|
||||
static void render_panel_format()
|
||||
{
|
||||
uiBlock *block;
|
||||
int yofs;
|
||||
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "render_panel_format", UI_EMBOSSX, UI_HELV, curarea->win);
|
||||
uiNewPanel(curarea, block, "Format", "Render", 960, 0, 318, 204);
|
||||
if( uiIsPanelClosed(block) ) return; // does draw when closed
|
||||
|
||||
uiDefBlockBut(block, framing_render_menu, NULL, "Game framing settings |>> ", 892, 169, 227, 20, "Display game framing settings");
|
||||
|
||||
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeX:", 892 ,136,112,27, &G.scene->r.xsch, 4.0, 10000.0, 0, 0, "The image width in pixels");
|
||||
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeY:", 1007,136,112,27, &G.scene->r.ysch, 4.0,10000.0, 0, 0, "The image height in scanlines");
|
||||
uiDefButS(block, NUM,REDRAWVIEWCAM,"AspX:", 892 ,114,112,20, &G.scene->r.xasp, 1.0,200.0, 0, 0, "The horizontal aspect ratio");
|
||||
uiDefButS(block, NUM,REDRAWVIEWCAM,"AspY:", 1007,114,112,20, &G.scene->r.yasp, 1.0,200.0, 0, 0, "The vertical aspect ratio");
|
||||
|
||||
|
||||
yofs = 54;
|
||||
|
||||
#ifdef __sgi
|
||||
yofs = 76;
|
||||
uiDefButS(block, NUM,B_DIFF,"MaxSize:", 892,32,165,20, &G.scene->r.maximsize, 0.0, 500.0, 0, 0, "Maximum size per frame to save in an SGI movie");
|
||||
uiBlockSetCol(block, BUTGREEN);
|
||||
uiDefButS(block, TOG|BIT|12,0,"Cosmo", 1059,32,60,20, &G.scene->r.mode, 0, 0, 0, 0, "Attempt to save SGI movies using Cosmo hardware");
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
#endif
|
||||
|
||||
uiDefButS(block, MENU,B_FILETYPEMENU,imagetype_pup(), 892,yofs,174,20, &G.scene->r.imtype, 0, 0, 0, 0, "Images are saved in this file format");
|
||||
uiBlockSetCol(block, BUTGREEN);
|
||||
uiDefButS(block, TOG|BIT|11,0, "Crop", 1068,yofs,51,20, &G.scene->r.mode, 0, 0, 0, 0, "Exclude border rendering from total image");
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
|
||||
yofs -= 22;
|
||||
|
||||
if(G.scene->r.quality==0) G.scene->r.quality= 90;
|
||||
|
||||
#ifdef WITH_QUICKTIME
|
||||
if (G.scene->r.imtype == R_AVICODEC || G.scene->r.imtype == R_QUICKTIME) {
|
||||
#else /* WITH_QUICKTIME */
|
||||
if (0) {
|
||||
#endif
|
||||
if(G.scene->r.imtype == R_QUICKTIME) {
|
||||
#ifdef WITH_QUICKTIME
|
||||
#if defined (_WIN32) || defined (__APPLE__)
|
||||
glColor3f(0.65, 0.65, 0.7);
|
||||
glRecti(892,yofs+46,892+225,yofs+45+20);
|
||||
if(G.scene->r.qtcodecdata == NULL)
|
||||
uiDefBut(block, LABEL, 0, "Codec: not set", 892,yofs+44,225,20, 0, 0, 0, 0, 0, "");
|
||||
else
|
||||
uiDefBut(block, LABEL, 0, G.scene->r.qtcodecdata->qtcodecname, 892,yofs+44,225,20, 0, 0, 0, 0, 0, "");
|
||||
uiDefBut(block, BUT,B_SELECTCODEC, "Set codec", 892,yofs,112,20, 0, 0, 0, 0, 0, "Set codec settings for Quicktime");
|
||||
#else /* libquicktime */
|
||||
if (!G.scene->r.qtcodecdata) G.scene->r.qtcodecdata = MEM_callocN(sizeof(QtCodecData), "QtCodecData");
|
||||
uiDefButI(block, MENU, B_SELECTCODEC, qtcodecs_pup(), 892,yofs, 112, 20, &qtcodec_idx, 0, 0, 0, 0, "Codec");
|
||||
/* make sure the codec stored in G.scene->r.qtcodecdata matches the selected
|
||||
* one, especially if it's not set.. */
|
||||
if (!G.scene->r.qtcodecdata->fourcc) {
|
||||
G.scene->r.qtcodecdata->fourcc = qtcodecidx_to_fcc(qtcodec_idx-1);
|
||||
qt_init_codecdata(G.scene->r.qtcodecdata);
|
||||
}
|
||||
|
||||
yofs -= 22;
|
||||
uiDefBlockBut(block, qtcodec_menu, NULL, "Codec Settings |>> ", 892,yofs, 227, 20, "Edit Codec settings for QuickTime");
|
||||
yofs +=22;
|
||||
|
||||
#endif /* libquicktime */
|
||||
#endif /* WITH_QUICKTIME */
|
||||
} else {
|
||||
#ifdef _WIN32
|
||||
glColor3f(0.65, 0.65, 0.7);
|
||||
glRecti(892,yofs+46,892+225,yofs+45+20);
|
||||
if(G.scene->r.avicodecdata == NULL)
|
||||
uiDefBut(block, LABEL, 0, "Codec: not set.", 892,yofs+43,225,20, 0, 0, 0, 0, 0, "");
|
||||
else
|
||||
uiDefBut(block, LABEL, 0, avicodec_str(), 892,yofs+43,225,20, 0, 0, 0, 0, 0, "");
|
||||
#endif
|
||||
uiDefBut(block, BUT,B_SELECTCODEC, "Set codec", 892,yofs,112,20, 0, 0, 0, 0, 0, "Set codec settings for AVI");
|
||||
}
|
||||
} else {
|
||||
uiDefButS(block, NUM,0, "Quality:", 892,yofs,112,20, &G.scene->r.quality, 10.0, 100.0, 0, 0, "Quality setting for JPEG images, AVI Jpeg and SGI movies");
|
||||
}
|
||||
uiDefButS(block, NUM,REDRAWSEQ,"Frs/sec:", 1006,yofs,113,20, &G.scene->r.frs_sec, 1.0, 120.0, 100.0, 0, "Frames per second");
|
||||
|
||||
|
||||
|
||||
uiDefButS(block, ROW,B_DIFF,"BW", 892, 10,74,20, &G.scene->r.planes, 5.0,(float)R_PLANESBW, 0, 0, "Images are saved with BW (grayscale) data");
|
||||
uiDefButS(block, ROW,B_DIFF,"RGB", 968, 10,74,20, &G.scene->r.planes, 5.0,(float)R_PLANES24, 0, 0, "Images are saved with RGB (color) data");
|
||||
uiDefButS(block, ROW,B_DIFF,"RGBA", 1044, 10,75,20, &G.scene->r.planes, 5.0,(float)R_PLANES32, 0, 0, "Images are saved with RGB and Alpha data (if supported)");
|
||||
|
||||
|
||||
uiDefBut(block, BUT,B_PR_PAL, "PAL", 1146,170,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 720x576, Aspect ratio - 54x51, 25 fps");
|
||||
uiDefBut(block, BUT,B_PR_NTSC, "NTSC", 1146,150,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 720x480, Aspect ratio - 10x11, 30 fps");
|
||||
uiDefBut(block, BUT,B_PR_PRESET, "Default", 1146,130,100,18, 0, 0, 0, 0, 0, "Same as PAL, with render settings (OSA, Shadows, Fields)");
|
||||
uiDefBut(block, BUT,B_PR_PRV, "Preview", 1146,110,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 640x512, Render size 50%");
|
||||
uiDefBut(block, BUT,B_PR_PC, "PC", 1146,90,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 640x480, Aspect ratio - 100x100");
|
||||
uiDefBut(block, BUT,B_PR_PAL169, "PAL 16:9",1146,70,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 720x576, Aspect ratio - 64x45");
|
||||
uiDefBut(block, BUT,B_PR_PANO, "PANO", 1146,50,100,18, 0, 0, 0, 0, 0, "Standard panorama settings");
|
||||
uiDefBut(block, BUT,B_PR_FULL, "FULL", 1146,30,100,18, 0, 0, 0, 0, 0, "Size preset: Image size - 1280x1024, Aspect ratio - 1x1");
|
||||
uiDefButS(block, TOG|BIT|15, B_REDR, "Unified Renderer", 1146,10,100,18, &G.scene->r.mode, 0, 0, 0, 0, "Use the unified renderer.");
|
||||
|
||||
|
||||
uiScalePanelBlock(block); // scales and centers
|
||||
uiDrawBlock(block);
|
||||
}
|
||||
|
||||
|
||||
void render_panels()
|
||||
{
|
||||
|
||||
render_panel_output();
|
||||
render_panel_render();
|
||||
render_panel_anim();
|
||||
render_panel_format();
|
||||
|
||||
}
|
@ -126,7 +126,7 @@ void meshactionbuts(SpaceAction *saction, Key *key)
|
||||
* correctly *grumble*
|
||||
*/
|
||||
mywinset(curarea->win);
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
|
||||
sprintf(str, "actionbuttonswin %d", curarea->win);
|
||||
block= uiNewBlock (&curarea->uiblocks, str,
|
||||
@ -302,7 +302,7 @@ static void draw_channel_names(void)
|
||||
bAction *act;
|
||||
Key *key;
|
||||
|
||||
myortho2 (0, NAMEWIDTH, G.v2d->cur.ymin, G.v2d->cur.ymax); // Scaling
|
||||
myortho2(0, NAMEWIDTH, G.v2d->cur.ymin, G.v2d->cur.ymax); // Scaling
|
||||
|
||||
/* Blank out the area */
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
@ -343,8 +343,7 @@ static void draw_channel_names(void)
|
||||
}
|
||||
}
|
||||
|
||||
myortho2 (0, NAMEWIDTH, 0,
|
||||
(ofsy+G.v2d->mask.ymax) -
|
||||
myortho2(0, NAMEWIDTH, 0, (ofsy+G.v2d->mask.ymax) -
|
||||
(ofsy+G.v2d->mask.ymin-SCROLLB)); // Scaling
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
@ -615,8 +614,7 @@ void drawactionspace(ScrArea *sa, void *spacedata)
|
||||
glClearColor(.45, .45, .45, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
myortho2 (G.v2d->cur.xmin, G.v2d->cur.xmax,
|
||||
G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
|
||||
/* Draw backdrop */
|
||||
calc_ipogrid();
|
||||
@ -643,14 +641,13 @@ void drawactionspace(ScrArea *sa, void *spacedata)
|
||||
ofsy+G.v2d->mask.ymin,
|
||||
( ofsx+G.v2d->mask.xmax-1)-(ofsx+G.v2d->mask.xmin)+1,
|
||||
( ofsy+G.v2d->mask.ymax-1)-( ofsy+G.v2d->mask.ymin)+1);
|
||||
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax,
|
||||
G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
draw_cfra_action();
|
||||
|
||||
/* Draw scroll */
|
||||
mywinset(curarea->win);
|
||||
mywinset(curarea->win); // reset scissor too
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
if(G.v2d->scroll) drawscroll(0);
|
||||
}
|
||||
|
||||
@ -664,6 +661,9 @@ void drawactionspace(ScrArea *sa, void *spacedata)
|
||||
meshactionbuts(G.saction, key);
|
||||
}
|
||||
|
||||
mywinset(curarea->win); // reset scissor too
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
draw_area_emboss(sa);
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
@ -115,7 +116,6 @@ static void scroll_prstr(float x, float y, float val, char dir, int disptype)
|
||||
|
||||
len= strlen(str);
|
||||
if(dir=='h') x-= 4*len;
|
||||
else y-= 4*len;
|
||||
|
||||
if(dir=='v' && disptype==IPO_DISPDEGR) {
|
||||
str[len]= 186; /* Degree symbol */
|
||||
@ -389,7 +389,7 @@ void test_view2d(View2D *v2d, int winx, int winy)
|
||||
v2d->cur.xmax=v2d->cur.xmin+((float)winx);
|
||||
|
||||
if(v2d->keepzoom & V2D_KEEPZOOM) {
|
||||
/* do not test for min/max: usiig curarea try to fixate zoom */
|
||||
/* do not test for min/max: use curarea try to fixate zoom */
|
||||
zoom= ((float)winx)/dx;
|
||||
|
||||
if(zoom<v2d->minzoom || zoom>v2d->maxzoom) {
|
||||
@ -450,9 +450,6 @@ void test_view2d(View2D *v2d, int winx, int winy)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(v2d->keeptot) {
|
||||
dx= cur->xmax-cur->xmin;
|
||||
dy= cur->ymax-cur->ymin;
|
||||
@ -527,9 +524,9 @@ void test_view2d(View2D *v2d, int winx, int winy)
|
||||
/* dx/dy is the total aspect */
|
||||
|
||||
/* this exception is for buttons...keepzoom doesnt work proper */
|
||||
if(v2d->keepzoom) fac= dy;
|
||||
else fac= dx/dy;
|
||||
|
||||
//if(v2d->keepzoom) fac= dy;
|
||||
//else fac= dx/dy;
|
||||
fac= dx/dy;
|
||||
if(fac>1.0) {
|
||||
|
||||
/* portrait window: correct for x */
|
||||
@ -574,23 +571,23 @@ void calc_scrollrcts(View2D *v2d, int winx, int winy)
|
||||
if(v2d->scroll & L_SCROLL) {
|
||||
v2d->vert= v2d->mask;
|
||||
v2d->vert.xmax= SCROLLB;
|
||||
v2d->mask.xmin= SCROLLB+1;
|
||||
v2d->mask.xmin= SCROLLB;
|
||||
}
|
||||
else if(v2d->scroll & R_SCROLL) {
|
||||
v2d->vert= v2d->mask;
|
||||
v2d->vert.xmin= v2d->vert.xmax-SCROLLB;
|
||||
v2d->mask.xmax= v2d->vert.xmin-1;
|
||||
v2d->mask.xmax= v2d->vert.xmin;
|
||||
}
|
||||
|
||||
if(v2d->scroll & B_SCROLL) {
|
||||
v2d->hor= v2d->mask;
|
||||
v2d->hor.ymax= SCROLLH;
|
||||
v2d->mask.ymin= SCROLLH+1;
|
||||
v2d->mask.ymin= SCROLLH;
|
||||
}
|
||||
else if(v2d->scroll & T_SCROLL) {
|
||||
v2d->hor= v2d->mask;
|
||||
v2d->hor.ymin= v2d->hor.ymax-SCROLLH;
|
||||
v2d->mask.ymax= v2d->hor.ymin-1;
|
||||
v2d->mask.ymax= v2d->hor.ymin;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -643,42 +640,38 @@ void drawscroll(int disptype)
|
||||
{
|
||||
rcti vert, hor;
|
||||
float fac, dfac, val, fac2, tim;
|
||||
unsigned int dark, darker, light;
|
||||
unsigned int darker, dark, light, lighter;
|
||||
|
||||
vert= (G.v2d->vert);
|
||||
hor= (G.v2d->hor);
|
||||
|
||||
darker= 0x525252;
|
||||
dark= 0x656565;
|
||||
darker= 0x404040;
|
||||
dark= 0x858585;
|
||||
light= 0x989898;
|
||||
lighter= 0xc0c0c0;
|
||||
|
||||
cpack(dark);
|
||||
if(G.v2d->scroll & HOR_SCROLL) {
|
||||
cpack(light);
|
||||
glRecti(hor.xmin, hor.ymin, hor.xmax, hor.ymax);
|
||||
glColor3ub(0, 0, 0);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glRecti(hor.xmin, hor.ymin, hor.xmax, hor.ymax); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
/* slider */
|
||||
fac= (G.v2d->cur.xmin- G.v2d->tot.xmin)/(G.v2d->tot.xmax-G.v2d->tot.xmin);
|
||||
if(fac<0.0) fac= 0.0;
|
||||
horxmin= hor.xmin+fac*(hor.xmax-hor.xmin) + 1;
|
||||
horxmin= hor.xmin+fac*(hor.xmax-hor.xmin);
|
||||
|
||||
fac= (G.v2d->cur.xmax- G.v2d->tot.xmin)/(G.v2d->tot.xmax-G.v2d->tot.xmin);
|
||||
if(fac>1.0) fac= 1.0;
|
||||
horxmax= hor.xmin+fac*(hor.xmax-hor.xmin) -1;
|
||||
horxmax= hor.xmin+fac*(hor.xmax-hor.xmin);
|
||||
|
||||
if(horxmin > horxmax-2) horxmin= horxmax-2;
|
||||
|
||||
glColor3ub(0x78, 0x78, 0x78);
|
||||
glRecti(horxmin, hor.ymin+1, horxmax, hor.ymax-1);
|
||||
|
||||
cpack(light);
|
||||
sdrawline(horxmin, hor.ymax-1, horxmax, hor.ymax-1); /* top */
|
||||
sdrawline(horxmin, hor.ymin+1, horxmin, hor.ymax-1); /* left */
|
||||
cpack(darker);
|
||||
sdrawline(horxmin, hor.ymin+1, horxmax, hor.ymin+1); /* bottom */
|
||||
sdrawline(horxmax, hor.ymin+1, horxmax, hor.ymax-1); /* right */
|
||||
if(horxmin > horxmax) horxmin= horxmax;
|
||||
|
||||
cpack(dark);
|
||||
glRecti(horxmin, hor.ymin, horxmax, hor.ymax);
|
||||
|
||||
/* decoration bright line */
|
||||
cpack(lighter);
|
||||
sdrawline(hor.xmin, hor.ymax, hor.xmax, hor.ymax);
|
||||
|
||||
/* the numbers: convert ipogrid_startx and -dx to scroll coordinates */
|
||||
fac= (ipogrid_startx- G.v2d->cur.xmin)/(G.v2d->cur.xmax-G.v2d->cur.xmin);
|
||||
fac= hor.xmin+fac*(hor.xmax-hor.xmin);
|
||||
@ -708,35 +701,33 @@ void drawscroll(int disptype)
|
||||
val+= ipogrid_dx;
|
||||
}
|
||||
}
|
||||
cpack(dark);
|
||||
|
||||
if(G.v2d->scroll & VERT_SCROLL) {
|
||||
cpack(light);
|
||||
glRecti(vert.xmin, vert.ymin, vert.xmax, vert.ymax);
|
||||
glColor3ub(0, 0, 0);
|
||||
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glRecti(vert.xmin, vert.ymin, vert.xmax, vert.ymax); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
/* slider */
|
||||
fac= (G.v2d->cur.ymin- G.v2d->tot.ymin)/(G.v2d->tot.ymax-G.v2d->tot.ymin);
|
||||
if(fac<0.0) fac= 0.0;
|
||||
vertymin= vert.ymin+fac*(vert.ymax-vert.ymin) + 1;
|
||||
vertymin= vert.ymin+fac*(vert.ymax-vert.ymin);
|
||||
|
||||
fac= (G.v2d->cur.ymax- G.v2d->tot.ymin)/(G.v2d->tot.ymax-G.v2d->tot.ymin);
|
||||
if(fac>1.0) fac= 1.0;
|
||||
vertymax= vert.ymin+fac*(vert.ymax-vert.ymin) -1;
|
||||
vertymax= vert.ymin+fac*(vert.ymax-vert.ymin);
|
||||
|
||||
if(vertymin > vertymax-2) vertymin= vertymax-2;
|
||||
if(vertymin > vertymax) vertymin= vertymax;
|
||||
|
||||
glColor3ub(0x78, 0x78, 0x78);
|
||||
glRecti(vert.xmin+1, vertymin, vert.xmax-1, vertymax);
|
||||
|
||||
cpack(light);
|
||||
|
||||
sdrawline(vert.xmin+1, vertymax, vert.xmax-1, vertymax); /* top */
|
||||
sdrawline(vert.xmin+1, vertymin, vert.xmin+1, vertymax); /* left */
|
||||
cpack(dark);
|
||||
glRecti(vert.xmin, vertymin, vert.xmax, vertymax);
|
||||
|
||||
/* decoration black line */
|
||||
cpack(darker);
|
||||
sdrawline(vert.xmin+1, vertymin, vert.xmax-1, vertymin); /* bottom */
|
||||
sdrawline(vert.xmax-1, vertymin, vert.xmax-1, vertymax); /* right */
|
||||
|
||||
if(G.v2d->scroll & HOR_SCROLL)
|
||||
sdrawline(vert.xmax, vert.ymin+SCROLLH, vert.xmax, vert.ymax);
|
||||
else
|
||||
sdrawline(vert.xmax, vert.ymin, vert.xmax, vert.ymax);
|
||||
|
||||
/* the numbers: convert ipogrid_starty and -dy to scroll coordinates */
|
||||
fac= (ipogrid_starty- G.v2d->cur.ymin)/(G.v2d->cur.ymax-G.v2d->cur.ymin);
|
||||
fac= vert.ymin+SCROLLH+fac*(vert.ymax-vert.ymin-SCROLLH);
|
||||
@ -763,7 +754,7 @@ void drawscroll(int disptype)
|
||||
glColor3ub(0, 0, 0);
|
||||
val= ipogrid_starty;
|
||||
while(fac < vert.ymax) {
|
||||
scroll_prstr((float)(vert.xmax)-3.0, fac, val, 'v', disptype);
|
||||
scroll_prstr((float)(vert.xmax)-14.0, fac, val, 'v', disptype);
|
||||
fac+= dfac;
|
||||
val+= ipogrid_dy;
|
||||
}
|
||||
@ -788,11 +779,13 @@ static void draw_ipobuts(SpaceIpo *sipo)
|
||||
if(tot<area->winy) sipo->butofs= 0;
|
||||
}
|
||||
|
||||
drawedge(v2d->mask.xmax+3, 0, v2d->mask.xmax+3, area->winy);
|
||||
glColor3ub(0x7f, 0x70, 0x70);
|
||||
|
||||
glRects(v2d->mask.xmax+6, 0, area->winx, area->winy);
|
||||
glRects(v2d->mask.xmax, 0, area->winx, area->winy);
|
||||
|
||||
cpack(0x0);
|
||||
sdrawline(v2d->mask.xmax, 0, v2d->mask.xmax, area->winy);
|
||||
|
||||
if(sipo->totipo==0) return;
|
||||
if(sipo->editipo==0) return;
|
||||
|
||||
@ -1412,7 +1405,7 @@ void drawipospace(ScrArea *sa, void *spacedata)
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
|
||||
if(v2d->scroll) {
|
||||
drawscroll(disptype);
|
||||
@ -1427,6 +1420,9 @@ void drawipospace(ScrArea *sa, void *spacedata)
|
||||
draw_ipogrid();
|
||||
}
|
||||
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
draw_area_emboss(sa);
|
||||
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
||||
@ -1457,78 +1453,79 @@ void scroll_ipobuts()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* total mess function, especially with mousewheel, needs cleanup badly (ton) */
|
||||
int view2dzoom(unsigned short event)
|
||||
{
|
||||
float fac, dx, dy, wtemp;
|
||||
short mval[2], mvalo[2];
|
||||
|
||||
|
||||
areawinset(curarea->win); /* from buttons */
|
||||
curarea->head_swap= 0;
|
||||
getmouseco_areawin(mvalo);
|
||||
|
||||
while( (get_mbut()&(L_MOUSE|M_MOUSE)) ||
|
||||
(event==WHEELUPMOUSE) ||
|
||||
(event==WHEELDOWNMOUSE) ) {
|
||||
|
||||
/* regular mousewheel: zoom regular
|
||||
* alt-shift mousewheel: zoom y only
|
||||
* alt-ctrl mousewheel: zoom x only
|
||||
*/
|
||||
while( (get_mbut()&(L_MOUSE|M_MOUSE)) || (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) {
|
||||
|
||||
/* regular mousewheel: zoom regular
|
||||
* alt-shift mousewheel: zoom y only
|
||||
* alt-ctrl mousewheel: zoom x only
|
||||
*/
|
||||
if (event==WHEELUPMOUSE) {
|
||||
if(U.uiflag & WHEELZOOMDIR)
|
||||
wtemp = -0.1154;
|
||||
wtemp = -0.0375;
|
||||
else
|
||||
wtemp = 0.1154;
|
||||
|
||||
wtemp = 0.03;
|
||||
if(curarea->spacetype!=SPACE_BUTS) wtemp*= 3;
|
||||
|
||||
dx= (float)(wtemp*(G.v2d->cur.xmax-G.v2d->cur.xmin));
|
||||
dy= (float)(wtemp*(G.v2d->cur.ymax-G.v2d->cur.ymin));
|
||||
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case 0:
|
||||
break;
|
||||
case (LR_SHIFTKEY|LR_ALTKEY):
|
||||
dx = 0;
|
||||
break;
|
||||
case (LR_CTRLKEY|LR_ALTKEY):
|
||||
dy = 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case 0:
|
||||
break;
|
||||
case (LR_SHIFTKEY|LR_ALTKEY):
|
||||
dx = 0;
|
||||
break;
|
||||
case (LR_CTRLKEY|LR_ALTKEY):
|
||||
dy = 0;
|
||||
break;
|
||||
default:
|
||||
if(curarea->spacetype==SPACE_BUTS); // exception
|
||||
else return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (event==WHEELDOWNMOUSE) {
|
||||
if(U.uiflag & WHEELZOOMDIR)
|
||||
wtemp = 0.1154;
|
||||
wtemp = 0.03;
|
||||
else
|
||||
wtemp = -0.1154;
|
||||
wtemp = -0.0375;
|
||||
if(curarea->spacetype!=SPACE_BUTS) wtemp*= 3;
|
||||
|
||||
dx= (float)(wtemp*(G.v2d->cur.xmax-G.v2d->cur.xmin));
|
||||
dy= (float)(wtemp*(G.v2d->cur.ymax-G.v2d->cur.ymin));
|
||||
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case 0:
|
||||
break;
|
||||
case (LR_SHIFTKEY|LR_ALTKEY):
|
||||
dx = 0;
|
||||
break;
|
||||
case (LR_CTRLKEY|LR_ALTKEY):
|
||||
dy = 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
getmouseco_areawin(mval);
|
||||
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case 0:
|
||||
break;
|
||||
case (LR_SHIFTKEY|LR_ALTKEY):
|
||||
dx = 0;
|
||||
break;
|
||||
case (LR_CTRLKEY|LR_ALTKEY):
|
||||
dy = 0;
|
||||
break;
|
||||
default:
|
||||
if(curarea->spacetype==SPACE_BUTS);
|
||||
else return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
getmouseco_areawin(mval);
|
||||
fac= 0.001*(mval[0]-mvalo[0]);
|
||||
dx= fac*(G.v2d->cur.xmax-G.v2d->cur.xmin);
|
||||
fac= 0.001*(mval[1]-mvalo[1]);
|
||||
dy= fac*(G.v2d->cur.ymax-G.v2d->cur.ymin);
|
||||
}
|
||||
}
|
||||
if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1]) {
|
||||
|
||||
G.v2d->cur.xmin+= dx;
|
||||
@ -1537,17 +1534,17 @@ int view2dzoom(unsigned short event)
|
||||
G.v2d->cur.ymin+= dy;
|
||||
G.v2d->cur.ymax-= dy;
|
||||
}
|
||||
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy); /* cur min max rects */
|
||||
scrarea_do_windraw(curarea);
|
||||
screen_swapbuffers();
|
||||
}
|
||||
else BIF_wait_for_statechange();
|
||||
/* return if we were using the mousewheel
|
||||
*/
|
||||
if ( (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) return 1;
|
||||
/* return if we were using the mousewheel
|
||||
*/
|
||||
if ( (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) return 1;
|
||||
}
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void center_currframe(void)
|
||||
@ -1570,6 +1567,7 @@ void center_currframe(void)
|
||||
curarea->head_swap= 0;
|
||||
}
|
||||
|
||||
/* total mess function, especially with mousewheel, needs cleanup badly (ton) */
|
||||
int view2dmove(unsigned short event)
|
||||
{
|
||||
/* return 1 when something was done */
|
||||
@ -1585,10 +1583,12 @@ int view2dmove(unsigned short event)
|
||||
* or if the mousewheel is being used.
|
||||
* Return if zooming was done.
|
||||
*/
|
||||
if ( (G.qual & LR_CTRLKEY) ||
|
||||
(event==WHEELUPMOUSE) ||
|
||||
(event==WHEELDOWNMOUSE) ) {
|
||||
if (view2dzoom(event)) {
|
||||
|
||||
|
||||
if ( (G.qual & LR_CTRLKEY) || (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) {
|
||||
/* patch for buttonswin, standard scroll no zoom */
|
||||
if(curarea->spacetype==SPACE_BUTS && (G.qual & LR_CTRLKEY)==0);
|
||||
else if (view2dzoom(event)) {
|
||||
curarea->head_swap= 0;
|
||||
return 0;
|
||||
}
|
||||
@ -1643,63 +1643,59 @@ int view2dmove(unsigned short event)
|
||||
* is used with the ctrl key then scroll left
|
||||
* and right.
|
||||
*/
|
||||
if (event==WHEELUPMOUSE) {
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case (LR_SHIFTKEY):
|
||||
dx = 0.0;
|
||||
dy= facy*10.0;
|
||||
break;
|
||||
case (LR_CTRLKEY):
|
||||
dx= facx*10.0;
|
||||
dy = 0.0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (event==WHEELDOWNMOUSE) {
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case (LR_SHIFTKEY):
|
||||
dx = 0.0;
|
||||
dy= -facy*10.0;
|
||||
break;
|
||||
case (LR_CTRLKEY):
|
||||
dx= -facx*10.0;
|
||||
dy = 0.0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
getmouseco_areawin(mval);
|
||||
dx= facx*(mvalo[0]-mval[0]);
|
||||
dy= facy*(mvalo[1]-mval[1]);
|
||||
}
|
||||
if (event==WHEELUPMOUSE || event==WHEELDOWNMOUSE) {
|
||||
if(event==WHEELDOWNMOUSE) {
|
||||
facx= -facx; facy= -facy;
|
||||
}
|
||||
|
||||
switch (G.qual & (LR_CTRLKEY|LR_SHIFTKEY|LR_ALTKEY)) {
|
||||
case (LR_SHIFTKEY):
|
||||
dx = 0.0;
|
||||
dy= facy*20.0;
|
||||
break;
|
||||
case (LR_CTRLKEY):
|
||||
dx= facx*20.0;
|
||||
dy = 0.0;
|
||||
break;
|
||||
default:
|
||||
if(curarea->spacetype==SPACE_BUTS) {
|
||||
if(G.buts->align==BUT_HORIZONTAL) {
|
||||
dx= facx*30; dy= 0.0;
|
||||
} else {
|
||||
dx= 0.0; dy= facy*30;
|
||||
}
|
||||
}
|
||||
else return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
getmouseco_areawin(mval);
|
||||
dx= facx*(mvalo[0]-mval[0]);
|
||||
dy= facy*(mvalo[1]-mval[1]);
|
||||
}
|
||||
|
||||
if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1]) {
|
||||
if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1]) {
|
||||
|
||||
G.v2d->cur.xmin+= left*dx;
|
||||
G.v2d->cur.xmax+= right*dx;
|
||||
G.v2d->cur.ymin+= left*dy;
|
||||
G.v2d->cur.ymax+= right*dy;
|
||||
G.v2d->cur.xmin+= left*dx;
|
||||
G.v2d->cur.xmax+= right*dx;
|
||||
G.v2d->cur.ymin+= left*dy;
|
||||
G.v2d->cur.ymax+= right*dy;
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
|
||||
scrarea_do_windraw(curarea);
|
||||
screen_swapbuffers();
|
||||
scrarea_do_windraw(curarea);
|
||||
screen_swapbuffers();
|
||||
|
||||
mvalo[0]= mval[0];
|
||||
mvalo[1]= mval[1];
|
||||
mvalo[0]= mval[0];
|
||||
mvalo[1]= mval[1];
|
||||
|
||||
}
|
||||
else BIF_wait_for_statechange();
|
||||
/* return if we were using the mousewheel
|
||||
*/
|
||||
if ( (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) return 1;
|
||||
}
|
||||
}
|
||||
else BIF_wait_for_statechange();
|
||||
/* return if we were using the mousewheel
|
||||
*/
|
||||
if ( (event==WHEELUPMOUSE) || (event==WHEELDOWNMOUSE) ) return 1;
|
||||
}
|
||||
|
||||
curarea->head_swap= 0;
|
||||
return 1;
|
||||
|
@ -93,7 +93,7 @@ static void draw_nlatree(void)
|
||||
bActionStrip *strip;
|
||||
bConstraintChannel *conchan;
|
||||
|
||||
myortho2 (0, NLAWIDTH, G.v2d->cur.ymin, G.v2d->cur.ymax); // Scaling
|
||||
myortho2(0, NLAWIDTH, G.v2d->cur.ymin, G.v2d->cur.ymax); // Scaling
|
||||
|
||||
/* Blank out the area */
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
@ -191,7 +191,7 @@ static void draw_nlatree(void)
|
||||
}
|
||||
}
|
||||
|
||||
myortho2 (0, NLAWIDTH, 0, ( ofsy+G.v2d->mask.ymax)-( ofsy+G.v2d->mask.ymin-SCROLLB)); // Scaling
|
||||
myortho2(0, NLAWIDTH, 0, ( ofsy+G.v2d->mask.ymax)-( ofsy+G.v2d->mask.ymin-SCROLLB)); // Scaling
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
@ -450,7 +450,7 @@ void drawnlaspace(ScrArea *sa, void *spacedata)
|
||||
glClearColor(.45, .45, .45, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
myortho2 (G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
|
||||
|
||||
/* Draw backdrop */
|
||||
calc_ipogrid();
|
||||
@ -466,15 +466,19 @@ void drawnlaspace(ScrArea *sa, void *spacedata)
|
||||
draw_cfra_action();
|
||||
|
||||
/* Draw scroll */
|
||||
mywinset(curarea->win);
|
||||
mywinset(curarea->win); // reset scissor too
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
if(G.v2d->scroll) drawscroll(0);
|
||||
}
|
||||
|
||||
/* Draw channel names */
|
||||
draw_nlatree();
|
||||
|
||||
mywinset(curarea->win); // reset scissor too
|
||||
myortho2(-0.5, sa->winx-0.5, -0.5, sa->winy-0.5);
|
||||
draw_area_emboss(sa);
|
||||
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
||||
|
@ -426,11 +426,12 @@ void drawoopsspace(ScrArea *sa, void *spacedata)
|
||||
mywinset(curarea->win);
|
||||
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, sa->winx-0.5, -0.5, sa->winy-0.5);
|
||||
if(G.v2d->scroll) {
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
drawscroll(0);
|
||||
}
|
||||
draw_area_emboss(sa);
|
||||
|
||||
uiDrawBlock(block);
|
||||
|
||||
|
@ -642,18 +642,17 @@ void drawseqspace(ScrArea *sa, void *spacedata)
|
||||
/* restore viewport */
|
||||
mywinset(curarea->win);
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
|
||||
if(G.v2d->scroll) {
|
||||
drawscroll(0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
draw_area_emboss(sa);
|
||||
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
||||
|
@ -197,15 +197,16 @@ void drawsoundspace(ScrArea *sa, void *spacedata)
|
||||
/* restore viewport */
|
||||
mywinset(curarea->win);
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
|
||||
if(curarea->winx>SCROLLB+10 && curarea->winy>SCROLLH+10) {
|
||||
|
||||
/* ortho at pixel level curarea */
|
||||
myortho2(-0.5, curarea->winx+0.5, -0.5, curarea->winy+0.5);
|
||||
|
||||
if(G.v2d->scroll) {
|
||||
drawscroll(0);
|
||||
}
|
||||
}
|
||||
|
||||
myortho2(-0.5, curarea->winx-0.5, -0.5, curarea->winy-0.5);
|
||||
draw_area_emboss(sa);
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
@ -290,11 +291,13 @@ static void draw_cursor(SpaceText *st) {
|
||||
|
||||
glColor3f(0.75, 0.44, 0.44);
|
||||
|
||||
if(st->showlinenrs)
|
||||
if(st->showlinenrs) {
|
||||
if (!x) x= TXT_OFFSET + TEXTXLOC -4;
|
||||
else
|
||||
}
|
||||
else {
|
||||
if (!x) x= TXT_OFFSET - 4;
|
||||
|
||||
}
|
||||
|
||||
if (!x) x= TXT_OFFSET-10;
|
||||
while (linef && linef != linel) {
|
||||
h= txt_get_span(text->lines.first, linef) - st->top;
|
||||
@ -549,7 +552,9 @@ void drawtextspace(ScrArea *sa, void *spacedata)
|
||||
|
||||
glClearColor(0.6, 0.6, 0.6, 1.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
myortho2(-0.5, curarea->winrct.xmax-curarea->winrct.xmin-0.5, -0.5, curarea->winrct.ymax-curarea->winrct.ymin-0.5);
|
||||
myortho2(-0.5, (float)(sa->winx)-.05, -0.5, (float)(sa->winy)-0.5);
|
||||
|
||||
draw_area_emboss(sa);
|
||||
|
||||
text= st->text;
|
||||
if(!text) return;
|
||||
|
@ -803,7 +803,7 @@ static void draw_view_icon(void)
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glRasterPos2f(5.0, 5.0);
|
||||
glRasterPos2f(curarea->winx-25.0, 5.0);
|
||||
BIF_draw_icon(icon);
|
||||
|
||||
glBlendFunc(GL_ONE, GL_ZERO);
|
||||
@ -990,6 +990,11 @@ void drawview3dspace(ScrArea *sa, void *spacedata)
|
||||
|
||||
if(G.scene->radio) RAD_drawall(G.vd->drawtype>=OB_SOLID);
|
||||
|
||||
if(G.zbuf) {
|
||||
G.zbuf= FALSE;
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
persp(0);
|
||||
|
||||
if(G.vd->persp>1) drawviewborder();
|
||||
@ -999,15 +1004,12 @@ void drawview3dspace(ScrArea *sa, void *spacedata)
|
||||
ob= OBACT;
|
||||
if(ob!=0 && (U.uiflag & DRAWVIEWINFO)) draw_selected_name(ob->id.name+2);
|
||||
|
||||
draw_area_emboss(sa);
|
||||
|
||||
persp(1);
|
||||
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
|
||||
if(G.zbuf) {
|
||||
G.zbuf= FALSE;
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
if(G.f & (G_VERTEXPAINT|G_FACESELECT|G_TEXTUREPAINT|G_WEIGHTPAINT)) {
|
||||
G.vd->flag |= V3D_NEEDBACKBUFDRAW;
|
||||
addafterqueue(curarea->win, BACKBUFDRAW, 1);
|
||||
|
@ -527,14 +527,14 @@ void free_editArmature(void)
|
||||
|
||||
static EditBone * get_nearest_editbonepoint (int findunsel, int *selmask){
|
||||
EditBone *ebone;
|
||||
GLuint buffer[MAXPICKBUF];
|
||||
unsigned int buffer[MAXPICKBUF];
|
||||
short hits;
|
||||
int i, takeNext=0;
|
||||
int sel;
|
||||
unsigned int hitresult, hitbone, firstunSel=-1;
|
||||
|
||||
glInitNames();
|
||||
hits=selectprojektie(buffer, 0, 0, 0, 0);
|
||||
hits= selectprojektie(buffer, 0, 0, 0, 0);
|
||||
|
||||
/* See if there are any selected bones in this group */
|
||||
if (hits){
|
||||
@ -606,7 +606,7 @@ static EditBone * get_nearest_editbonepoint (int findunsel, int *selmask){
|
||||
|
||||
static void * get_nearest_bone (int findunsel){
|
||||
void *firstunSel=NULL, *data;
|
||||
GLuint buffer[MAXPICKBUF];
|
||||
unsigned int buffer[MAXPICKBUF];
|
||||
short hits;
|
||||
int i, takeNext=0;
|
||||
int sel;
|
||||
@ -615,7 +615,7 @@ static void * get_nearest_bone (int findunsel){
|
||||
EditBone *ebone;
|
||||
|
||||
glInitNames();
|
||||
hits=selectprojektie(buffer, 0, 0, 0, 0);
|
||||
hits= selectprojektie(buffer, 0, 0, 0, 0);
|
||||
|
||||
|
||||
/* See if there are any selected bones in this group */
|
||||
@ -1788,7 +1788,7 @@ void armaturebuts(void)
|
||||
|
||||
/* Dist and weight buttons */
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
but=uiDefButI(block, MENU, REDRAWVIEW3D,
|
||||
but=uiDefButS(block, MENU, REDRAWVIEW3D,
|
||||
"Skinnable %x0|"
|
||||
"Unskinnable %x1|"
|
||||
"Head %x2|"
|
||||
@ -1901,7 +1901,7 @@ static void build_bonestring (char *string, EditBone *bone){
|
||||
|
||||
static void validate_editbonebutton(EditBone *eBone){
|
||||
EditBone *prev;
|
||||
bAction *act;
|
||||
bAction *act=NULL;
|
||||
bActionChannel *chan;
|
||||
Base *base;
|
||||
|
||||
|
@ -140,7 +140,6 @@
|
||||
#include "BDR_editobject.h"
|
||||
#include "BDR_drawobject.h"
|
||||
#include "BDR_editcurve.h"
|
||||
#include "BDR_editface.h"
|
||||
|
||||
#include "render.h"
|
||||
#include <time.h>
|
||||
@ -221,11 +220,14 @@ void free_and_unlink_base(Base *base)
|
||||
void delete_obj(int ok)
|
||||
{
|
||||
Base *base;
|
||||
extern int undo_push(char *);
|
||||
|
||||
if(G.obpose) return;
|
||||
if(G.obedit) return;
|
||||
if(G.scene->id.lib) return;
|
||||
|
||||
//if (undo_push("Erase")) return;
|
||||
|
||||
base= FIRSTBASE;
|
||||
while(base) {
|
||||
Base *nbase= base->next;
|
||||
@ -1397,7 +1399,7 @@ void special_editmenu(void)
|
||||
|
||||
if(me==0 || me->tface==0) return;
|
||||
|
||||
nr= pupmenu("Specials%t|Set Tex%x1| Shared%x2| Light%x3| Invisible%x4| Collision%x5|Clr Tex%x6| Shared%x7| Light%x8| Invisible%x9| Collision%x10|Sel Same UV%x11");
|
||||
nr= pupmenu("Specials%t|Set Tex%x1| Shared%x2| Light%x3| Invisible%x4| Collision%x5|Clr Tex%x6| Shared%x7| Light%x8| Invisible%x9| Collision%x10");
|
||||
|
||||
for(a=me->totface, tface= me->tface; a>0; a--, tface++) {
|
||||
if(tface->flag & SELECT) {
|
||||
@ -1424,8 +1426,6 @@ void special_editmenu(void)
|
||||
tface->mode &= ~TF_INVISIBLE; break;
|
||||
case 10:
|
||||
tface->mode &= ~TF_DYNAMIC; break;
|
||||
case 11:
|
||||
get_same_uv(); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3514,7 +3514,7 @@ void headerprint(char *str)
|
||||
{
|
||||
areawinset(curarea->headwin);
|
||||
|
||||
headerbox(0xA09090, curarea->winx);
|
||||
headerbox(curarea);
|
||||
cpack(0x0);
|
||||
glRasterPos2i(20+curarea->headbutofs, 6);
|
||||
BMF_DrawString(G.font, str);
|
||||
|
@ -91,6 +91,7 @@
|
||||
#include "BIF_toolbox.h"
|
||||
#include "BIF_usiblender.h"
|
||||
#include "BIF_keyval.h"
|
||||
#include "BIF_resources.h"
|
||||
|
||||
#include "BSE_edit.h"
|
||||
#include "BSE_filesel.h"
|
||||
@ -120,7 +121,7 @@ static void wait_for_event(void);
|
||||
|
||||
static Window *mainwin= NULL;
|
||||
static int prefsizx= 0, prefsizy= 0, prefstax= 0, prefstay= 0, start_maximized= 1;
|
||||
static short dodrawscreen= 0;
|
||||
static short dodrawscreen= 1;
|
||||
static ScrArea *areawinar[MAXWIN];
|
||||
static ScrArea *g_activearea= NULL;
|
||||
short winqueue_break= 0;
|
||||
@ -223,11 +224,11 @@ static ScrEdge *screen_find_active_scredge(bScreen *sc, short *mval)
|
||||
|
||||
for (se= sc->edgebase.first; se; se= se->next) {
|
||||
if (scredge_is_horizontal(se)) {
|
||||
if (abs(mval[1]-se->v1->vec.y)<=EDGEWIDTH2 &&
|
||||
if (abs(mval[1]-se->v1->vec.y)<=2 &&
|
||||
abs(mval[0]-se->v1->vec.x)<=abs(se->v2->vec.x-se->v1->vec.x))
|
||||
return se;
|
||||
} else {
|
||||
if (abs(mval[0]-se->v1->vec.x)<=EDGEWIDTH2 &&
|
||||
if (abs(mval[0]-se->v1->vec.x)<=2 &&
|
||||
abs(mval[1]-se->v1->vec.y)<=abs(se->v2->vec.y-se->v1->vec.y))
|
||||
return se;
|
||||
}
|
||||
@ -290,30 +291,30 @@ void areawinset(short win)
|
||||
if(win) mywinset(win);
|
||||
}
|
||||
|
||||
void headerbox(int selcol, int width)
|
||||
#define SCR_BACK 0.55
|
||||
#define SCR_ROUND 9
|
||||
|
||||
void headerbox(ScrArea *area)
|
||||
{
|
||||
if(selcol) glClearColor(.75, .75, .75, 0.0);
|
||||
else glClearColor(.65, .65, .65, 0.0);
|
||||
|
||||
float width= area->winx;
|
||||
|
||||
glClearColor(SCR_BACK, SCR_BACK, SCR_BACK, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glColor3ub(0, 0, 0);
|
||||
sdrawbox(0, 0, width, HEADERY);
|
||||
|
||||
glColor3ub(220, 220, 220);
|
||||
sdrawline(0, HEADERY-1, width, HEADERY-1);
|
||||
if(area_is_active_area(area)) BIF_set_color(HEADERCOLSEL, COLORSHADE_MEDIUM);
|
||||
else BIF_set_color(HEADERCOL, COLORSHADE_MEDIUM);
|
||||
|
||||
glColor3ub(176, 176, 176);
|
||||
sdrawline(0, HEADERY-2, width, HEADERY-2);
|
||||
/* weird values here... is because of window matrix that centres buttons */
|
||||
if(area->headertype==HEADERTOP) {
|
||||
uiSetRoundBox(3);
|
||||
uiRoundBoxEmboss(-0.5+area->headbutofs, -10.0, width-1.5+area->headbutofs, HEADERY-1, SCR_ROUND);
|
||||
}
|
||||
else {
|
||||
uiSetRoundBox(12);
|
||||
uiRoundBoxEmboss(-0.5+area->headbutofs, -2.0, width-1.5+area->headbutofs, HEADERY+10, SCR_ROUND);
|
||||
}
|
||||
|
||||
glColor3ub(128, 128, 128);
|
||||
sdrawline(0, 2, width, 2);
|
||||
|
||||
glColor3ub(64, 64, 64);
|
||||
sdrawline(0, 1, width, 1);
|
||||
|
||||
glColor3ub(0, 0, 0);
|
||||
sdrawline(0, 0, width, 0);
|
||||
uiSetRoundBox(15);
|
||||
}
|
||||
|
||||
int area_is_active_area(ScrArea *area)
|
||||
@ -326,8 +327,11 @@ void scrarea_do_headdraw(ScrArea *area)
|
||||
if (area->headertype) {
|
||||
areawinset(area->headwin);
|
||||
|
||||
headerbox(area_is_active_area(area), area->winx+100);
|
||||
|
||||
headerbox(area);
|
||||
|
||||
/* we make scissor test slightly smaller not to destroy rounded headers */
|
||||
glScissor(area->headrct.xmin+5, area->headrct.ymin, area->winx-10, HEADERY);
|
||||
|
||||
switch(area->spacetype) {
|
||||
case SPACE_FILE: file_buttons(); break;
|
||||
case SPACE_INFO: info_buttons(); break;
|
||||
@ -343,7 +347,8 @@ void scrarea_do_headdraw(ScrArea *area)
|
||||
case SPACE_ACTION: action_buttons(); break;
|
||||
case SPACE_NLA: nla_buttons(); break;
|
||||
}
|
||||
|
||||
|
||||
//glScissor(area->winrct.xmin, area->winrct.xmax, area->winx, area->winy);
|
||||
area->head_swap= WIN_BACK_OK;
|
||||
}
|
||||
}
|
||||
@ -352,9 +357,9 @@ void scrarea_do_headchange(ScrArea *area)
|
||||
float ofs= area->headbutofs;
|
||||
|
||||
if (area->headertype==HEADERDOWN) {
|
||||
bwin_ortho2(area->headwin, 0.5+ofs, area->headrct.xmax-area->headrct.xmin-0.5+ofs, +0.6, area->headrct.ymax-area->headrct.ymin+0.6);
|
||||
bwin_ortho2(area->headwin, -0.5+ofs, area->headrct.xmax-area->headrct.xmin-0.5+ofs, -2.5, area->headrct.ymax-area->headrct.ymin-2.5);
|
||||
} else if (area->headertype==HEADERTOP) {
|
||||
bwin_ortho2(area->headwin, -0.5+ofs, area->headrct.xmax-area->headrct.xmin-0.5+ofs, -0.5, area->headrct.ymax-area->headrct.ymin-0.5);
|
||||
bwin_ortho2(area->headwin, -0.5+ofs, area->headrct.xmax-area->headrct.xmin-0.5+ofs, -1.5, area->headrct.ymax-area->headrct.ymin-1.5);
|
||||
}
|
||||
}
|
||||
|
||||
@ -378,6 +383,7 @@ static void scrarea_change_headertype(ScrArea *sa, int newtype)
|
||||
}
|
||||
|
||||
testareas();
|
||||
mainqenter(DRAWEDGES, 1);
|
||||
winqueue_break= 1;
|
||||
}
|
||||
|
||||
@ -566,8 +572,31 @@ void splash(void *data, int datasize, char *string)
|
||||
oldwin = mywinget();
|
||||
mywinset(G.curscreen->mainwin);
|
||||
|
||||
if (string) {
|
||||
int x, y, maxy;
|
||||
unsigned int *rect;
|
||||
|
||||
rect = bbuf->rect;
|
||||
maxy = MIN2(bbuf->y, 18);
|
||||
|
||||
for (y = 0; y < maxy; y++) {
|
||||
for (x = 0; x < bbuf->x; x++) {
|
||||
*rect = 0xffffffff;
|
||||
rect++;
|
||||
}
|
||||
}
|
||||
}
|
||||
glDrawBuffer(GL_FRONT);
|
||||
|
||||
/*
|
||||
// this dims the whole screen a bit. I didn't like it afterall
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glColor4f(0.0,0.0,0.0,0.3);
|
||||
glRecti(0, 0, G.curscreen->sizex, G.curscreen->sizey);
|
||||
glDisable(GL_BLEND);
|
||||
*/
|
||||
|
||||
glRasterPos2i((prefsizx-bbuf->x)/2, (prefsizy-bbuf->y)/2);
|
||||
glDrawPixels(bbuf->x, bbuf->y, GL_RGBA, GL_UNSIGNED_BYTE, bbuf->rect);
|
||||
|
||||
@ -875,10 +904,15 @@ static ScrArea *screen_find_area_for_pt(bScreen *sc, short *mval)
|
||||
{
|
||||
ScrArea *sa;
|
||||
|
||||
for (sa= sc->areabase.first; sa; sa= sa->next)
|
||||
if (BLI_in_rcti(&sa->totrct, mval[0], mval[1]))
|
||||
return sa;
|
||||
/* hotspot area of 1 pixel extra */
|
||||
|
||||
for (sa= sc->areabase.first; sa; sa= sa->next) {
|
||||
if( sa->totrct.xmin + 1 < mval[0] )
|
||||
if( sa->totrct.ymin + 1 < mval[1] )
|
||||
if( sa->totrct.xmax - 1 > mval[0] )
|
||||
if( sa->totrct.ymax - 1 > mval[1] )
|
||||
return sa;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1342,11 +1376,11 @@ void calc_arearcts(ScrArea *sa)
|
||||
if(sa->headertype) {
|
||||
sa->headrct= sa->totrct;
|
||||
if(sa->headertype==HEADERDOWN) {
|
||||
sa->headrct.ymax= sa->headrct.ymin+HEADERY-1;
|
||||
sa->headrct.ymax= sa->headrct.ymin+HEADERY;
|
||||
sa->winrct.ymin= sa->headrct.ymax+1;
|
||||
}
|
||||
else if(sa->headertype==HEADERTOP) {
|
||||
sa->headrct.ymin= sa->headrct.ymax-HEADERY+1;
|
||||
sa->headrct.ymin= sa->headrct.ymax-HEADERY;
|
||||
sa->winrct.ymax= sa->headrct.ymin-1;
|
||||
}
|
||||
}
|
||||
@ -1386,7 +1420,8 @@ static void closeheadwin(ScrArea *sa)
|
||||
static void closeareawin(ScrArea *sa)
|
||||
{
|
||||
uiFreeBlocksWin(&sa->uiblocks, sa->win);
|
||||
|
||||
uiFreePanels(&sa->panels);
|
||||
|
||||
if(sa->win) mywinclose(sa->win);
|
||||
sa->win= 0;
|
||||
}
|
||||
@ -1404,15 +1439,19 @@ static void del_area(ScrArea *sa)
|
||||
if(sa==g_activearea) g_activearea= 0;
|
||||
}
|
||||
|
||||
/* sa2 to sa1 */
|
||||
static void copy_areadata(ScrArea *sa1, ScrArea *sa2)
|
||||
{
|
||||
|
||||
sa1->headertype= sa2->headertype;
|
||||
sa1->spacetype= sa2->spacetype;
|
||||
Mat4CpyMat4(sa1->winmat, sa2->winmat);
|
||||
|
||||
freespacelist(&sa1->spacedata);
|
||||
|
||||
duplicatespacelist(sa1, &sa1->spacedata, &sa2->spacedata);
|
||||
|
||||
BLI_freelistN(&sa1->panels);
|
||||
duplicatelist(&sa1->panels, &sa2->panels);
|
||||
}
|
||||
|
||||
static ScrArea *screen_addarea(bScreen *sc, ScrVert *v1, ScrVert *v2, ScrVert *v3, ScrVert *v4, short headertype, short spacetype)
|
||||
@ -1635,6 +1674,15 @@ void add_to_mainqueue(Window *win, void *user_data, short evt, short val, char a
|
||||
mainqenter_ext(evt, val, ascii);
|
||||
}
|
||||
|
||||
/* ScrVert ordering in a ScrArea:
|
||||
|
||||
2---------3
|
||||
| |
|
||||
| |
|
||||
1---------4
|
||||
|
||||
*/
|
||||
|
||||
static bScreen *addscreen(char *name) /* use setprefsize() if you want something else than a full windpw */
|
||||
{
|
||||
/* this function sets variabele G.curscreen,
|
||||
@ -1690,10 +1738,10 @@ static bScreen *addscreen(char *name) /* use setprefsize() if you want somethin
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
glDrawBuffer(GL_FRONT);
|
||||
glClearColor(.45, .45, .45, 0.0);
|
||||
/* for visual speed, but still needed? */
|
||||
glClearColor(.55, .55, .55, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
glDrawBuffer(GL_BACK);
|
||||
window_swap_buffers(mainwin);
|
||||
|
||||
warp_pointer(sc->sizex/2, sc->sizey/2);
|
||||
|
||||
@ -1874,7 +1922,7 @@ void area_fullscreen(void) /* with curarea */
|
||||
curarea= old;
|
||||
G.curscreen= oldscreen; /* needed because of setscreen */
|
||||
|
||||
/* vopy area */
|
||||
/* copy area */
|
||||
copy_areadata(newa, curarea);
|
||||
|
||||
curarea->full= oldscreen;
|
||||
@ -2572,6 +2620,7 @@ static void moveareas(ScrEdge *edge)
|
||||
doit= delta= 0;
|
||||
getmouseco_sc(mvalo);
|
||||
draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
|
||||
|
||||
while (!doit) {
|
||||
short val;
|
||||
unsigned short event= extern_qread(&val);
|
||||
@ -2587,9 +2636,12 @@ static void moveareas(ScrEdge *edge)
|
||||
delta= CLAMPIS(delta, -smaller, bigger);
|
||||
|
||||
draw_front_xor_dirdist_line(dir, edge_position+delta, edge_start, edge_end);
|
||||
} else if (event==LEFTMOUSE) {
|
||||
|
||||
}
|
||||
else if (event==LEFTMOUSE) {
|
||||
doit= 1;
|
||||
} else if (val) {
|
||||
}
|
||||
else if (val) {
|
||||
if (ELEM(event, ESCKEY, RIGHTMOUSE))
|
||||
doit= -1;
|
||||
else if (ELEM(event, SPACEKEY, RETKEY))
|
||||
@ -2729,99 +2781,105 @@ int select_area(int spacetype)
|
||||
/* ************ END JOIN/SPLIT/MOVE ************** */
|
||||
/* **************** DRAW SCREENEDGES ***************** */
|
||||
|
||||
#define EDGE_EXTEND 3
|
||||
|
||||
void drawedge(short x1, short y1, short x2, short y2)
|
||||
void draw_area_emboss(ScrArea *sa)
|
||||
{
|
||||
static unsigned int edcol[EDGEWIDTH]= {0x0, 0x505050, 0x909090, 0xF0F0F0, 0x0};
|
||||
int a;
|
||||
|
||||
if(x1==x2) { /* vertical */
|
||||
if (y2<y1) {
|
||||
SWAP(short, y1, y2);
|
||||
}
|
||||
if (y1==0) y1-= EDGE_EXTEND;
|
||||
if (y2==G.curscreen->sizey) y2+= EDGE_EXTEND;
|
||||
|
||||
x1+= EDGEWIDTH2;
|
||||
x2+= EDGEWIDTH2;
|
||||
/* set transp line */
|
||||
glEnable( GL_BLEND );
|
||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
|
||||
glBegin(GL_LINES);
|
||||
for(a=0; a<EDGEWIDTH; a++) {
|
||||
int rounding= abs(a-EDGEWIDTH2);
|
||||
|
||||
cpack(edcol[a]);
|
||||
glVertex2i(x1-a, y1+rounding);
|
||||
glVertex2i(x2-a, y2-rounding);
|
||||
}
|
||||
glEnd();
|
||||
/* right */
|
||||
glColor4ub(0,0,0, 80);
|
||||
sdrawline(sa->winx-1, 0, sa->winx-1, sa->winy-1);
|
||||
|
||||
/* bottom */
|
||||
if(sa->headertype!=HEADERDOWN) {
|
||||
glColor4ub(0,0,0, 128);
|
||||
sdrawline(0, 0, sa->winx-1, 0);
|
||||
}
|
||||
else { /* horizontal */
|
||||
if (x2<x1) {
|
||||
SWAP(short, x1, x2);
|
||||
}
|
||||
if (x1==0) x1-= EDGE_EXTEND;
|
||||
if (x2==G.curscreen->sizex) x2+= EDGE_EXTEND;
|
||||
|
||||
/* top */
|
||||
if(sa->headertype!=HEADERTOP) {
|
||||
glColor4ub(255,255,255, 128);
|
||||
sdrawline(0, sa->winy-1, sa->winx-1, sa->winy-1);
|
||||
}
|
||||
/* left */
|
||||
glColor4ub(255,255,255, 80);
|
||||
sdrawline(0, 0, 0, sa->winy);
|
||||
|
||||
y1-= EDGEWIDTH2;
|
||||
y2-= EDGEWIDTH2;
|
||||
|
||||
glBegin(GL_LINES);
|
||||
for(a=0; a<EDGEWIDTH; a++) {
|
||||
int rounding= abs(a-EDGEWIDTH2);
|
||||
|
||||
cpack(edcol[a]);
|
||||
glVertex2i(x1+rounding, y1+a);
|
||||
glVertex2i(x2-rounding, y2+a);
|
||||
}
|
||||
glEnd();
|
||||
glDisable( GL_BLEND );
|
||||
|
||||
|
||||
/* for test */
|
||||
if(FALSE && sa->spacetype==SPACE_VIEW3D) {
|
||||
cpack(0xA0A0A0);
|
||||
uiSetRoundBox(31);
|
||||
uiRoundBoxEmboss(5.0, 5.0, 25.0, 100.0, 8.0);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glRasterPos2f(8.0, 10.0);
|
||||
BIF_draw_icon(ICON_MATERIAL_HLT);
|
||||
glRasterPos2f(8.0, 30.0);
|
||||
BIF_draw_icon(ICON_IPO_HLT);
|
||||
glRasterPos2f(8.0, 50.0);
|
||||
BIF_draw_icon(ICON_HOME);
|
||||
glRasterPos2f(8.0, 70.0);
|
||||
BIF_draw_icon(ICON_BORDERMOVE);
|
||||
|
||||
glBlendFunc(GL_ONE, GL_ZERO);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
}
|
||||
|
||||
static void drawscredge(ScrEdge *se)
|
||||
{
|
||||
bScreen *sc;
|
||||
vec2s *v1, *v2;
|
||||
|
||||
sc= G.curscreen;
|
||||
|
||||
v1= &(se->v1->vec);
|
||||
v2= &(se->v2->vec);
|
||||
|
||||
/* do not draw borders screen© */
|
||||
/* bcause of different framebuffer resoltions (PC/SGI etc files)
|
||||
* a bit rounding here? should be looked at further...
|
||||
*/
|
||||
se->border= 1;
|
||||
if(v1->x<=1 && v2->x<=1) return;
|
||||
if(v1->x>=sc->sizex-2 && v2->x>=sc->sizex-2) return;
|
||||
if(v1->y<=1 && v2->y<=1) return;
|
||||
if(v1->y>=sc->sizey-2 && v2->y>=sc->sizey-2) return;
|
||||
se->border= 0;
|
||||
|
||||
drawedge(v1->x, v1->y, v2->x, v2->y);
|
||||
void drawscredge_area(ScrArea *sa)
|
||||
{
|
||||
short x1= sa->v1->vec.x;
|
||||
short y1= sa->v1->vec.y;
|
||||
short x2= sa->v3->vec.x;
|
||||
short y2= sa->v3->vec.y;
|
||||
|
||||
/* this to fill the (undrawn) edge area with back color first */
|
||||
glColor3f(SCR_BACK,SCR_BACK,SCR_BACK);
|
||||
sdrawline(x2, y1, x2, y2);
|
||||
sdrawline(x1, y1, x2, y1);
|
||||
|
||||
cpack(0x0);
|
||||
|
||||
/* right border area */
|
||||
if(sa->headertype==HEADERTOP) sdrawline(x2, y1, x2, y2-SCR_ROUND);
|
||||
else if(sa->headertype==HEADERDOWN) sdrawline(x2, y1+SCR_ROUND, x2, y2);
|
||||
else sdrawline(x2, y1, x2, y2);
|
||||
|
||||
/* left border area */
|
||||
if(sa->headertype==HEADERTOP) sdrawline(x1, y1, x1, y2-SCR_ROUND);
|
||||
else if(sa->headertype==HEADERDOWN) sdrawline(x1, y1+SCR_ROUND, x1, y2);
|
||||
else sdrawline(x1, y1, x1, y2);
|
||||
|
||||
/* top border area */
|
||||
if(sa->headertype==HEADERTOP) sdrawline(x1+SCR_ROUND, y2, x2-SCR_ROUND, y2);
|
||||
else sdrawline(x1, y2, x2, y2);
|
||||
|
||||
/* bottom border area */
|
||||
if(sa->headertype==HEADERDOWN) sdrawline(x1+SCR_ROUND, y1, x2-SCR_ROUND, y1);
|
||||
else sdrawline(x1, y1, x2, y1);
|
||||
|
||||
}
|
||||
|
||||
void drawscreen(void)
|
||||
{
|
||||
ScrEdge *se;
|
||||
|
||||
ScrArea *sa;
|
||||
|
||||
mywinset(G.curscreen->mainwin);
|
||||
myortho2(-0.5, (float)G.curscreen->sizex-0.5, -0.6, (float)G.curscreen->sizey-0.6);
|
||||
myortho2(-0.5, (float)G.curscreen->sizex-0.5, -0.51, (float)G.curscreen->sizey-0.51);
|
||||
|
||||
/* two times, because there is no 'win_swap' for this available */
|
||||
glDrawBuffer(GL_FRONT);
|
||||
se= G.curscreen->edgebase.first;
|
||||
while(se) {
|
||||
drawscredge(se);
|
||||
se= se->next;
|
||||
}
|
||||
|
||||
glDrawBuffer(GL_BACK);
|
||||
se= G.curscreen->edgebase.first;
|
||||
while(se) {
|
||||
drawscredge(se);
|
||||
se= se->next;
|
||||
sa= G.curscreen->areabase.first;
|
||||
while(sa) {
|
||||
drawscredge_area(sa);
|
||||
sa= sa->next;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,6 +91,7 @@
|
||||
#include "BIF_editview.h"
|
||||
#include "BIF_space.h"
|
||||
#include "BIF_screen.h"
|
||||
#include "BIF_resources.h"
|
||||
|
||||
#include "BLO_readfile.h"
|
||||
|
||||
@ -104,6 +105,7 @@
|
||||
#include "interface.h"
|
||||
#include "nla.h"
|
||||
|
||||
|
||||
#if defined WIN32 || defined __BeOS
|
||||
int fnmatch(){return 0;}
|
||||
#else
|
||||
@ -886,12 +888,12 @@ static void draw_filescroll(SpaceFile *sfile)
|
||||
|
||||
if(scrollrct.ymin+10 >= scrollrct.ymax) return;
|
||||
|
||||
cpack(0x707070);
|
||||
cpack(0x808080);
|
||||
glRecti(scrollrct.xmin, scrollrct.ymin, scrollrct.xmax, scrollrct.ymax);
|
||||
|
||||
uiEmboss(scrollrct.xmin, scrollrct.ymin, scrollrct.xmax, scrollrct.ymax, 1);
|
||||
|
||||
cpack(0x909090);
|
||||
glColor3f(.715, .715, .715);
|
||||
glRecti(bar.xmin+2, bar.ymin+2, bar.xmax-2, bar.ymax-2);
|
||||
|
||||
uiEmboss(bar.xmin+2, bar.ymin+2, bar.xmax-2, bar.ymax-2, filescrollselect);
|
||||
@ -912,13 +914,13 @@ static void printregel(SpaceFile *sfile, struct direntry *files, int x, int y)
|
||||
|
||||
switch(files->flags & (HILITE + ACTIVE)) {
|
||||
case HILITE+ACTIVE:
|
||||
boxcol= (0xC09090);
|
||||
boxcol= (0xD0A0A0);
|
||||
break;
|
||||
case HILITE:
|
||||
boxcol= (0x909090);
|
||||
boxcol= (0xA0A0A0);
|
||||
break;
|
||||
case ACTIVE:
|
||||
boxcol= (0xB08080);
|
||||
boxcol= (0xC0A0A0);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1070,7 +1072,7 @@ static void set_active_file(SpaceFile *sfile, int act)
|
||||
glScissor(curarea->winrct.xmin, curarea->winrct.ymin, curarea->winx-12, curarea->winy);
|
||||
|
||||
if( calc_filesel_regel(sfile, old, &x, &y) ) {
|
||||
regelrect(0x717171, x, y);
|
||||
regelrect(0x888888, x, y);
|
||||
printregel(sfile, sfile->filelist+old, x, y);
|
||||
}
|
||||
if( calc_filesel_regel(sfile, newi, &x, &y) ) {
|
||||
@ -1098,7 +1100,7 @@ static void draw_filetext(SpaceFile *sfile)
|
||||
|
||||
|
||||
/* box */
|
||||
cpack(0x717171);
|
||||
cpack(0x888888);
|
||||
glRecti(textrct.xmin, textrct.ymin, textrct.xmax, textrct.ymax);
|
||||
|
||||
/* collums */
|
||||
@ -1131,7 +1133,7 @@ static void draw_filetext(SpaceFile *sfile)
|
||||
/* clear drawing errors, with text at the right hand side: */
|
||||
uiEmboss(textrct.xmin, textrct.ymin, textrct.xmax, textrct.ymax, 1);
|
||||
|
||||
glColor3f(.5625, .5625, .5625);
|
||||
glColor3f(.715, .715, .715);
|
||||
glRecti(textrct.xmax+2, textrct.ymin, textrct.xmax+10, textrct.ymax);
|
||||
}
|
||||
|
||||
@ -1144,9 +1146,9 @@ void drawfilespace(ScrArea *sa, void *spacedata)
|
||||
char name[20];
|
||||
char *menu;
|
||||
|
||||
myortho2(-0.5, curarea->winrct.xmax-curarea->winrct.xmin-0.5, -0.5, curarea->winrct.ymax-curarea->winrct.ymin-0.5);
|
||||
myortho2(-0.5, sa->winx-0.5, -0.5, sa->winy-0.5);
|
||||
|
||||
glClearColor(.56, .56, .56, 0.0);
|
||||
glClearColor(.715, .715, .715, 0.0); /* headercol */
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
sfile= curarea->spacedata.first;
|
||||
@ -1166,6 +1168,7 @@ void drawfilespace(ScrArea *sa, void *spacedata)
|
||||
/* HEADER */
|
||||
sprintf(name, "win %d", curarea->win);
|
||||
block= uiNewBlock(&curarea->uiblocks, name, UI_EMBOSSF, UI_HELV, curarea->win);
|
||||
uiBlockSetCol(block, BUTGREY);
|
||||
|
||||
uiSetButLock( sfile->type==FILE_MAIN && sfile->returnfunc, NULL);
|
||||
|
||||
@ -1199,6 +1202,8 @@ void drawfilespace(ScrArea *sa, void *spacedata)
|
||||
/* others diskfree etc ? */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
myortho2(-0.5, (float)(sa->winx)-0.5, -0.5, (float)(sa->winy)-0.5);
|
||||
draw_area_emboss(sa);
|
||||
|
||||
curarea->win_swap= WIN_BACK_OK;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -154,9 +154,11 @@ static void def_col(BIFColorID colorid, unsigned char r, unsigned char g, unsign
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_WHITE), col, 60);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_LIGHT), col, 35);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_HILITE), col, 20);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_LMEDIUM), col, 10);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_MEDIUM), col, 0);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_GREY), col, -45);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_DARK), col, -60);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_LGREY), col, -20);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_GREY), col, -45);
|
||||
rgbaCCol_addNT(get_color(colorid, COLORSHADE_DARK), col, -80);
|
||||
} else {
|
||||
printf("def_col: Internal error, bad color ID: %d\n", colorid);
|
||||
}
|
||||
@ -265,11 +267,11 @@ void BIF_resources_init(void)
|
||||
|
||||
IMB_freeImBuf(bbuf);
|
||||
|
||||
def_col(BUTGREY, 0xB0,0xB0,0xB0);
|
||||
def_col(BUTGREY, 0x90,0x90,0x90);
|
||||
def_col(BUTGREEN, 0x88,0xA0,0xA4);
|
||||
def_col(BUTBLUE, 0xA0,0xA0,0xB0);
|
||||
def_col(BUTSALMON, 0xB0,0xA0,0x90);
|
||||
def_col(MIDGREY, 0x90,0x90,0x90);
|
||||
def_col(MIDGREY, 0xB0,0xB0,0xB0);
|
||||
def_col(BUTPURPLE, 0xA2,0x98,0xA9);
|
||||
def_col(BUTYELLOW, 0xB2,0xB2,0x99);
|
||||
def_col(BUTRUST, 0x80,0x70,0x70);
|
||||
@ -278,7 +280,16 @@ void BIF_resources_init(void)
|
||||
def_col(BUTDBLUE, 0x80,0x80,0xA0);
|
||||
def_col(BUTDPINK, 0xAA,0x88,0x55);
|
||||
def_col(BUTPINK, 0xE8,0xBD,0xA7);
|
||||
def_col(BUTMACTIVE, 0x70,0x70,0xC0);
|
||||
def_col(BUTMACTIVE, 0x30,0x30,0x30);
|
||||
|
||||
def_col(ACTIONBUTCOL, 0x88,0x88,0x88);
|
||||
def_col(NUMBUTCOL, 0x88,0x88,0x88);
|
||||
def_col(TEXBUTCOL, 0x88,0x88,0x88);
|
||||
def_col(TOGBUTCOL, 0x88,0x88,0x88);
|
||||
def_col(SLIDERCOL, 0x88,0x88,0x88);
|
||||
def_col(TABCOL, 0x88,0x88,0x88);
|
||||
def_col(MENUCOL, 0xCF,0xCF,0xCF);
|
||||
def_col(MENUACTIVECOL, 0x80,0x80,0x80);
|
||||
|
||||
def_col(BUTIPO, 0xB0,0xB0,0x99);
|
||||
def_col(BUTAUDIO, 0xB0,0xA0,0x90);
|
||||
@ -290,13 +301,17 @@ void BIF_resources_init(void)
|
||||
def_col(BUTMOTION, 0x98,0xA7,0xA9);
|
||||
def_col(BUTMESSAGE, 0x88,0xA0,0x94);
|
||||
def_col(BUTACTION, 0xB2,0xA9,0x99);
|
||||
def_col(BUTVISIBILITY, 0xB2,0xA9,0x99);
|
||||
def_col(BUTVISIBILITY, 0xB2,0xA9,0x99);
|
||||
def_col(BUTCD, 0xB0,0x95,0x90);
|
||||
def_col(BUTGAME, 0x99,0xB2,0x9C);
|
||||
def_col(BUTYUCK, 0xB0,0x99,0xB0);
|
||||
def_col(BUTSEASICK, 0x99,0xB0,0xB0);
|
||||
def_col(BUTCHOKE, 0x88,0x94,0xA0);
|
||||
def_col(BUTIMPERIAL, 0x94,0x88,0xA0);
|
||||
|
||||
def_col(HEADERCOL, 165, 165, 165);
|
||||
def_col(HEADERCOLSEL, 185, 185, 185);
|
||||
|
||||
}
|
||||
|
||||
void BIF_resources_free(void)
|
||||
|
@ -437,7 +437,7 @@ void select_children(Object *ob, int recursive)
|
||||
|
||||
void select_parent(void) /* Makes parent active and de-selected OBACT */
|
||||
{
|
||||
Base *base, *startbase, *basact, *oldbasact;
|
||||
Base *base, *startbase, *basact=NULL, *oldbasact;
|
||||
|
||||
if (!(OBACT->parent)) return;
|
||||
BASACT->flag &= (~SELECT);
|
||||
@ -1962,6 +1962,12 @@ void drawinfospace(ScrArea *sa, void *spacedata)
|
||||
}
|
||||
|
||||
uiDrawBlock(block);
|
||||
|
||||
myortho2(-0.5, (float)(sa->winx)-.05, -0.5, (float)(sa->winy)-0.5);
|
||||
draw_area_emboss(sa);
|
||||
myortho2(0.0, 1280.0, 0.0, curarea->winy/fac);
|
||||
sa->win_swap= WIN_BACK_OK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2010,7 +2016,7 @@ void winqreadbutspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
short val= evt->val;
|
||||
SpaceButs *sbuts= curarea->spacedata.first;
|
||||
ScrArea *sa2, *sa3d;
|
||||
int doredraw= 0;
|
||||
int nr, doredraw= 0;
|
||||
|
||||
if(val) {
|
||||
|
||||
@ -2026,7 +2032,14 @@ void winqreadbutspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case WHEELDOWNMOUSE:
|
||||
view2dmove(event); /* in drawipo.c */
|
||||
break;
|
||||
case RIGHTMOUSE:
|
||||
nr= pupmenu("Align buttons%t|Free %x0|Horizontal%x1|Vertical%x2");
|
||||
if (nr>=0) {
|
||||
sbuts->align= nr;
|
||||
if(nr) uiAnimatePanels(sa);
|
||||
}
|
||||
|
||||
break;
|
||||
case PADPLUSKEY:
|
||||
view2d_zoom(&sbuts->v2d, 0.06, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
@ -2087,11 +2100,11 @@ void set_rects_butspace(SpaceButs *buts)
|
||||
buts->v2d.min[0]= 256.0;
|
||||
buts->v2d.min[1]= 42.0;
|
||||
|
||||
buts->v2d.max[0]= 1600.0;
|
||||
buts->v2d.max[0]= 2048.0;
|
||||
buts->v2d.max[1]= 450.0;
|
||||
|
||||
buts->v2d.minzoom= 0.5;
|
||||
buts->v2d.maxzoom= 1.41;
|
||||
buts->v2d.maxzoom= 1.21;
|
||||
|
||||
buts->v2d.scroll= 0;
|
||||
buts->v2d.keepaspect= 1;
|
||||
|
Loading…
Reference in New Issue
Block a user