diff options
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_camera_types.h | 27 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_image_types.h | 52 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 94 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_sequence_types.h | 15 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_space_types.h | 3 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_view3d_types.h | 16 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_windowmanager_types.h | 6 |
8 files changed, 197 insertions, 17 deletions
diff --git a/source/blender/makesdna/DNA_camera_types.h b/source/blender/makesdna/DNA_camera_types.h index c67a356a708..6a9942aea66 100644 --- a/source/blender/makesdna/DNA_camera_types.h +++ b/source/blender/makesdna/DNA_camera_types.h @@ -44,6 +44,16 @@ struct Object; struct AnimData; struct Ipo; +/* ------------------------------------------- */ +/* Stereo Settings */ +typedef struct CameraStereoSettings { + float interocular_distance; + float convergence_distance; + short convergence_mode; + short pivot; + short pad, pad2; +} CameraStereoSettings; + typedef struct Camera { ID id; struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */ @@ -69,6 +79,9 @@ typedef struct Camera { char sensor_fit; char pad[7]; + + /* Stereo settings */ + struct CameraStereoSettings stereo; } Camera; /* **************** CAMERA ********************* */ @@ -123,6 +136,20 @@ enum { #define DEFAULT_SENSOR_WIDTH 32.0f #define DEFAULT_SENSOR_HEIGHT 18.0f +/* stereo->convergence_mode */ +enum { + CAM_S3D_OFFAXIS = 0, + CAM_S3D_PARALLEL = 1, + CAM_S3D_TOE = 2, +}; + +/* stereo->pivot */ +enum { + CAM_S3D_PIVOT_LEFT = 0, + CAM_S3D_PIVOT_RIGHT = 1, + CAM_S3D_PIVOT_CENTER = 2, +}; + #ifdef __cplusplus } #endif diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index 7444abb6d11..79980c6d2d5 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -43,7 +43,6 @@ struct MovieCache; struct RenderResult; struct GPUTexture; - /* ImageUser is in Texture, in Nodes, Background Image, Image Window, .... */ /* should be used in conjunction with an ID * to Image. */ typedef struct ImageUser { @@ -53,16 +52,34 @@ typedef struct ImageUser { int frames; /* total amount of frames to use */ int offset, sfra; /* offset within movie, start frame in global time */ char fie_ima, cycl; /* fields/image in movie, cyclic flag */ - char ok, pad; + char ok; + + char multiview_eye; /* multiview current eye - for internal use of drawing routines */ - short multi_index, layer, pass; /* listbase indices, for menu browsing or retrieve buffer */ + short multi_index, view, layer, pass; /* listbase indices, for menu browsing or retrieve buffer */ short flag; - - int pad2; + short passtype; } ImageUser; +typedef struct ImageAnim { + struct ImageAnim *next, *prev; + struct anim *anim; +} ImageAnim; + +typedef struct ImageView { + struct ImageView *next, *prev; + char name[64]; /* MAX_NAME */ + char filepath[1024]; /* 1024 = FILE_MAX */ +} ImageView; + +typedef struct ImagePackedFile { + struct ImagePackedFile *next, *prev; + struct PackedFile *packedfile; + char filepath[1024]; /* 1024 = FILE_MAX */ +} ImagePackedFile; + typedef struct RenderSlot { char name[64]; /* 64 = MAX_NAME */ } RenderSlot; @@ -72,6 +89,7 @@ typedef struct RenderSlot { #define IMA_ANIM_REFRESHED 2 /* #define IMA_DO_PREMUL 4 */ #define IMA_NEED_FRAME_RECALC 8 +#define IMA_SHOW_STEREO 16 typedef struct Image { ID id; @@ -82,13 +100,13 @@ typedef struct Image { struct GPUTexture *gputexture; /* not written in file */ /* sources from: */ - struct anim *anim; + ListBase anims; struct RenderResult *rr; struct RenderResult *renders[8]; /* IMA_MAX_RENDER_SLOT */ short render_slot, last_render_slot; - - short ok, flag; + + int flag; short source, type; int lastframe; @@ -99,14 +117,16 @@ typedef struct Image { unsigned int bindcode; /* only for current image... */ unsigned int *repbind; /* for repeat of parts of images */ - struct PackedFile *packedfile; + struct PackedFile *packedfile; /* deprecated */ + struct ListBase packedfiles; struct PreviewImage *preview; /* game engine tile animation */ float lastupdate; int lastused; short animspeed; - short pad2; + + short ok; /* for generated images */ int gen_x, gen_y; @@ -121,7 +141,14 @@ typedef struct Image { ColorManagedColorspaceSettings colorspace_settings; char alpha_mode; - char pad[7]; + char pad[5]; + + /* Multiview */ + char eye; /* for viewer node stereoscopy */ + char views_format; + ListBase views; + struct Stereo3dFormat *stereo3d_format; + RenderSlot render_slots[8]; /* 8 = IMA_MAX_RENDER_SLOT */ } Image; @@ -143,6 +170,9 @@ enum { IMA_VIEW_AS_RENDER = (1 << 11), IMA_IGNORE_ALPHA = (1 << 12), IMA_DEINTERLACE = (1 << 13), + IMA_USE_VIEWS = (1 << 14), + IMA_IS_STEREO = (1 << 15), + IMA_IS_MULTIVIEW = (1 << 16), /* similar to stereo, but a more general case */ }; #if (DNA_DEPRECATED_GCC_POISON == 1) diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 9ab6527daee..2a1a35d158a 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -263,6 +263,7 @@ typedef struct bNode { */ #define NODE_UPDATE 0xFFFF /* generic update flag (includes all others) */ #define NODE_UPDATE_ID 1 /* associated id data block has changed */ +#define NODE_UPDATE_OPERATOR 2 /* node update triggered from update operator */ /* Unique hash key for identifying node instances * Defined as a struct because DNA does not support other typedefs. diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index ac0803d494c..250bfe85ec2 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -47,6 +47,7 @@ extern "C" { #include "DNA_ID.h" #include "DNA_freestyle_types.h" #include "DNA_gpu_types.h" +#include "DNA_userdef_types.h" struct CurveMapping; struct Object; @@ -249,6 +250,73 @@ typedef enum ScenePassType { /* note, srl->passflag is treestore element 'nr' in outliner, short still... */ +/* View - MultiView */ +typedef struct SceneRenderView { + struct SceneRenderView *next, *prev; + + char name[64]; /* MAX_NAME */ + char suffix[64]; /* MAX_NAME */ + + int viewflag; + int pad[2]; + char pad2[4]; + +} SceneRenderView; + +/* srv->viewflag */ +#define SCE_VIEW_DISABLE (1<<0) + +/* scene.render.views_format */ +enum { + SCE_VIEWS_FORMAT_STEREO_3D = 0, + SCE_VIEWS_FORMAT_MULTIVIEW = 1, +}; + +/* ImageFormatData.views_output */ +enum { + R_IMF_VIEWS_INDIVIDUAL = 0, + R_IMF_VIEWS_STEREO_3D = 1, + R_IMF_VIEWS_MULTIVIEW = 2, +}; + +typedef struct Stereo3dFormat { + short flag; + char display_mode; /* encoding mode */ + char anaglyph_type; /* anaglyph scheme for the user display */ + char interlace_type; /* interlace type for the user display */ + char pad[3]; +} Stereo3dFormat; + +/* Stereo3dFormat.display_mode */ +typedef enum eStereoDisplayMode { + S3D_DISPLAY_ANAGLYPH = 0, + S3D_DISPLAY_INTERLACE = 1, + S3D_DISPLAY_PAGEFLIP = 2, + S3D_DISPLAY_SIDEBYSIDE = 3, + S3D_DISPLAY_TOPBOTTOM = 4, +} eStereoDisplayMode; + +/* Stereo3dFormat.flag */ +typedef enum eStereo3dFlag { + S3D_INTERLACE_SWAP = (1 << 0), + S3D_SIDEBYSIDE_CROSSEYED = (1 << 1), + S3D_SQUEEZED_FRAME = (1 << 2), +} eStereo3dFlag; + +/* Stereo3dFormat.anaglyph_type */ +typedef enum eStereo3dAnaglyphType { + S3D_ANAGLYPH_REDCYAN = 0, + S3D_ANAGLYPH_GREENMAGENTA = 1, + S3D_ANAGLYPH_YELLOWBLUE = 2, +} eStereo3dAnaglyphType; + +/* Stereo3dFormat.interlace_type */ +typedef enum eStereo3dInterlaceType { + S3D_INTERLACE_ROW = 0, + S3D_INTERLACE_COLUMN = 1, + S3D_INTERLACE_CHECKERBOARD = 2, +} eStereo3dInterlaceType; + /* *************************************************************** */ /* Generic image format settings, @@ -286,7 +354,11 @@ typedef struct ImageFormatData { char jp2_flag; char jp2_codec; - char pad[6]; + char pad[5]; + + /* Multiview */ + char views_format; + Stereo3dFormat stereo3d_format; /* color management */ ColorManagedViewSettings view_settings; @@ -616,6 +688,12 @@ typedef struct RenderData { int preview_start_resolution; int pad; + + /* MultiView */ + ListBase views; + short actview; + short views_format; + short pad8[2]; } RenderData; /* *************************************************************** */ @@ -810,6 +888,19 @@ enum { #define UV_SCULPT_TOOL_RELAX_LAPLACIAN 1 #define UV_SCULPT_TOOL_RELAX_HC 2 +/* Stereo Flags */ +#define STEREO_RIGHT_NAME "right" +#define STEREO_LEFT_NAME "left" +#define STEREO_RIGHT_SUFFIX "_R" +#define STEREO_LEFT_SUFFIX "_L" + +typedef enum StereoViews { + STEREO_LEFT_ID = 0, + STEREO_RIGHT_ID = 1, + STEREO_3D_ID = 2, + STEREO_MONO_ID = 3, +} StereoViews; + /* Markers */ typedef struct TimeMarker { @@ -1440,6 +1531,7 @@ typedef struct Scene { #define R_TEXNODE_PREVIEW 0x40000 #define R_VIEWPORT_PREVIEW 0x80000 #define R_EXR_CACHE_FILE 0x100000 +#define R_MULTIVIEW 0x200000 /* r->stamp */ #define R_STAMP_TIME 0x0001 diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 46a91cf6ceb..76c27fd3547 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -53,6 +53,11 @@ struct MovieClip; /* strlens; 256= FILE_MAXFILE, 768= FILE_MAXDIR */ +typedef struct StripAnim { + struct StripAnim *next, *prev; + struct anim *anim; +} StripAnim; + typedef struct StripElem { char name[256]; int orig_width, orig_height; @@ -156,8 +161,7 @@ typedef struct Sequence { struct Object *scene_camera; /* override scene camera */ struct MovieClip *clip; /* for MOVIECLIP strips */ struct Mask *mask; /* for MASK strips */ - - struct anim *anim; /* for MOVIE strips */ + ListBase anims; /* for MOVIE strips */ float effect_fader; float speed_fader; @@ -187,7 +191,11 @@ typedef struct Sequence { int sfra; /* starting frame according to the timeline of the scene. */ char alpha_mode; - char pad[3]; + char pad[2]; + + /* Multiview */ + char views_format; + struct Stereo3dFormat *stereo3d_format; struct IDProperty *prop; @@ -376,6 +384,7 @@ enum { /* don't include Grease Pencil in OpenGL previews of Scene strips */ SEQ_SCENE_NO_GPENCIL = (1 << 28), + SEQ_USE_VIEWS = (1 << 29), SEQ_INVALID_EFFECT = (1 << 31), }; diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index dff6d3cacb5..05127f176b4 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -500,6 +500,9 @@ typedef struct SpaceSeq { struct bGPdata *gpd; /* grease-pencil data */ struct SequencerScopes scopes; /* different scoped displayed in space */ + + char multiview_eye; /* multiview current eye - for internal use */ + char pad2[7]; } SpaceSeq; diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 93e61487000..66ee1fe4242 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -215,8 +215,10 @@ typedef struct View3D { /* drawflags, denoting state */ char zbuf, transp, xray; + char multiview_eye; /* multiview current eye - for internal use */ + /* built-in shader effects (eGPUFXFlags) */ - char pad3[5]; + char pad3[4]; /* note, 'fx_settings.dof' is currently _not_ allocated, * instead set (temporarily) from camera */ @@ -228,9 +230,21 @@ typedef struct View3D { /* XXX deprecated? */ struct bGPdata *gpd DNA_DEPRECATED; /* Grease-Pencil Data (annotation layers) */ + /* multiview - stereo 3d */ + short stereo3d_flag; + char stereo3d_camera; + char pad4; + float stereo3d_convergence_factor; + float stereo3d_volume_alpha; + float stereo3d_convergence_alpha; } View3D; +/* View3D->stereo_flag (short) */ +#define V3D_S3D_DISPCAMERAS (1 << 0) +#define V3D_S3D_DISPPLANE (1 << 1) +#define V3D_S3D_DISPVOLUME (1 << 2) + /* View3D->flag (short) */ /*#define V3D_DISPIMAGE 1*/ /*UNUSED*/ #define V3D_DISPBGPICS 2 diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h index ebbafb19aa5..dca2faf0d54 100644 --- a/source/blender/makesdna/DNA_windowmanager_types.h +++ b/source/blender/makesdna/DNA_windowmanager_types.h @@ -33,6 +33,7 @@ #include "DNA_listBase.h" #include "DNA_vec_types.h" +#include "DNA_userdef_types.h" #include "DNA_ID.h" @@ -56,6 +57,7 @@ struct PointerRNA; struct ReportList; struct Report; struct uiLayout; +struct Stereo3dFormat; #define OP_MAX_TYPENAME 64 #define KMAP_MAX_NAME 64 @@ -206,7 +208,7 @@ typedef struct wmWindow { struct wmIMEData *ime_data; int drawmethod, drawfail; /* internal for wm_draw.c only */ - void *drawdata; /* internal for wm_draw.c only */ + ListBase drawdata; /* internal for wm_draw.c only */ ListBase queue; /* all events (ghost level events were handled) */ ListBase handlers; /* window+screen handlers, handled last */ @@ -214,6 +216,8 @@ typedef struct wmWindow { ListBase subwindows; /* opengl stuff for sub windows, see notes in wm_subwindow.c */ ListBase gesture; /* gesture stuff */ + + struct Stereo3dFormat *stereo3d_format; /* properties for stereoscopic displays */ } wmWindow; #ifdef ime_data |