About the Author |
|
vii | |
Chapter 1 Intro to the "Core" Blender Source Code |
|
1 | (24) |
|
|
1 | (3) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (5) |
|
The Blender CMake Build System |
|
|
9 | (6) |
|
|
9 | (3) |
|
|
12 | (3) |
|
A Representative Code Example |
|
|
15 | (8) |
|
Geometric Modeling and Operators |
|
|
15 | (6) |
|
|
21 | (2) |
|
Road Map for the Remainder of the Book |
|
|
23 | (2) |
|
|
23 | (1) |
|
|
24 | (1) |
Chapter 2 Blender "DNA" and Serialization |
|
25 | (30) |
|
|
25 | (6) |
|
What Does the Blend File Contain? |
|
|
25 | (1) |
|
Using the BlendFileReader.py Script |
|
|
26 | (5) |
|
A Closer Look at the makesdna Module |
|
|
31 | (3) |
|
Blend File Loading Trace in Core Blender: A First Encounter |
|
|
34 | (20) |
|
The struct bContext and struct Main Types |
|
|
34 | (4) |
|
Initialization of SDNA, Global, and the windowmanager |
|
|
38 | (3) |
|
From the Kernel to the Loader |
|
|
41 | (4) |
|
Reading the In-Memory startup.blend File |
|
|
45 | (9) |
|
|
54 | (1) |
Chapter 3 ghost: Soul of the windowmanager Module |
|
55 | (28) |
|
The Generic Handy Operating System Toolkit (ghost) |
|
|
56 | (21) |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
59 | (15) |
|
Minimal OpenGL Program Written in C Using ghost |
|
|
74 | (3) |
|
|
77 | (5) |
|
windowManager's ghost-Related Files |
|
|
77 | (2) |
|
ghost Initialization and Event Registration |
|
|
79 | (3) |
|
|
82 | (1) |
Chapter 4 The blenlib and blenkernel Modules |
|
83 | (28) |
|
|
84 | (17) |
|
|
85 | (1) |
|
|
86 | (1) |
|
|
87 | (2) |
|
|
89 | (12) |
|
|
101 | (8) |
|
|
103 | (2) |
|
|
105 | (4) |
|
|
109 | (2) |
Chapter 5 Blender's Embedded Python |
|
111 | (26) |
|
The Blender python Module |
|
|
111 | (3) |
|
Source Files and Directories |
|
|
112 | (1) |
|
|
113 | (1) |
|
Extending and Embedding Python |
|
|
114 | (5) |
|
|
115 | (4) |
|
The mathutils Extension Module |
|
|
119 | (16) |
|
Implementation of the mathutils.Vector Class |
|
|
121 | (1) |
|
|
122 | (1) |
|
Adding Methods to vector_Type |
|
|
123 | (1) |
|
Vector_new()'s Implementation |
|
|
124 | (5) |
|
Vector_normalize()'s Implementation |
|
|
129 | (1) |
|
Other mathutils.Vector Methods |
|
|
130 | (2) |
|
|
132 | (3) |
|
|
135 | (2) |
Chapter 6 Blender "RNA" and the Data API |
|
137 | (36) |
|
The Blender makesrna Module |
|
|
138 | (19) |
|
Runtime vs. Non-runtime Code |
|
|
138 | (1) |
|
|
139 | (16) |
|
|
155 | (2) |
|
Setting Blender "DNA" Using "RNA" |
|
|
157 | (11) |
|
|
157 | (1) |
|
|
158 | (10) |
|
The python Module and Blender "RNA" |
|
|
168 | (3) |
|
|
171 | (2) |
Chapter 7 The editors Module, Operators, and Event System |
|
173 | (34) |
|
|
173 | (9) |
|
Directory Layout and Files |
|
|
174 | (3) |
|
Editor Structs: The "Space" Types |
|
|
177 | (3) |
|
|
180 | (2) |
|
windowmanager Revisit: Windows, "Screens," "Areas," and "Regions" |
|
|
182 | (7) |
|
|
189 | (15) |
|
The Operator Structs: wmOperatorType and wmOperator |
|
|
190 | (3) |
|
The exec and poll Callbacks |
|
|
193 | (2) |
|
|
195 | (2) |
|
|
197 | (7) |
|
|
204 | (3) |
Chapter 8 Editor Creation |
|
207 | |
|
Drawing Editors from WM_main() |
|
|
207 | (5) |
|
|
212 | (18) |
|
|
216 | (5) |
|
|
221 | (4) |
|
Operator Registration and Definition |
|
|
225 | (2) |
|
|
227 | (2) |
|
File Changes for the Tutorial Editor |
|
|
229 | (1) |
|
|
230 | (6) |
|
|
231 | (3) |
|
The UI_* API Implementation Files |
|
|
234 | (2) |
|
|
236 | |
|
|
239 | |