Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--intern/cycles/app/cycles_xml.cpp3
-rw-r--r--intern/cycles/blender/blender_shader.cpp4
-rw-r--r--intern/cycles/kernel/CMakeLists.txt1
-rw-r--r--intern/cycles/kernel/osl/nodes/CMakeLists.txt1
-rw-r--r--intern/cycles/kernel/osl/nodes/node_gamma.osl33
-rw-r--r--intern/cycles/kernel/svm/svm.h4
-rw-r--r--intern/cycles/kernel/svm/svm_gamma.h37
-rw-r--r--intern/cycles/kernel/svm/svm_types.h3
-rw-r--r--intern/cycles/render/nodes.cpp27
-rw-r--r--intern/cycles/render/nodes.h5
-rw-r--r--source/blender/avi/intern/avi.c57
-rw-r--r--source/blender/avi/intern/codecs.c15
-rw-r--r--source/blender/avi/intern/endian.c30
-rw-r--r--source/blender/avi/intern/mjpeg.c57
-rw-r--r--source/blender/avi/intern/options.c3
-rw-r--r--source/blender/avi/intern/rgb32.c6
-rw-r--r--source/blender/blenkernel/BKE_node.h1
-rw-r--r--source/blender/blenkernel/intern/boids.c3
-rw-r--r--source/blender/blenkernel/intern/image.c10
-rw-r--r--source/blender/blenkernel/intern/node.c1
-rw-r--r--source/blender/blenkernel/intern/ocean.c3
-rw-r--r--source/blender/blenkernel/intern/suggestions.c54
-rw-r--r--source/blender/blenkernel/intern/text.c12
-rw-r--r--source/blender/blenlib/BLI_ghash.h10
-rw-r--r--source/blender/blenlib/intern/BLI_dynstr.c9
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c89
-rw-r--r--source/blender/blenlib/intern/BLI_linklist.c24
-rw-r--r--source/blender/blenlib/intern/BLI_memarena.c18
-rw-r--r--source/blender/blenlib/intern/edgehash.c30
-rw-r--r--source/blender/blenlib/intern/rand.c39
-rw-r--r--source/blender/blenlib/intern/winstuff.c18
-rw-r--r--source/blender/editors/interface/interface_draw.c12
-rw-r--r--source/blender/editors/interface/interface_intern.h1
-rw-r--r--source/blender/editors/interface/interface_widgets.c18
-rw-r--r--source/blender/editors/mesh/mesh_navmesh.c3
-rw-r--r--source/blender/editors/object/object_add.c37
-rw-r--r--source/blender/editors/object/object_vgroup.c4
-rw-r--r--source/blender/editors/physics/physics_pointcache.c3
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c7
-rw-r--r--source/blender/editors/sound/sound_ops.c198
-rw-r--r--source/blender/editors/space_outliner/outliner_select.c2
-rw-r--r--source/blender/editors/transform/transform.c30
-rw-r--r--source/blender/editors/transform/transform_constraints.c36
-rw-r--r--source/blender/editors/transform/transform_conversions.c12
-rw-r--r--source/blender/editors/transform/transform_orientations.c33
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c6
-rw-r--r--source/blender/imbuf/intern/anim_movie.c52
-rw-r--r--source/blender/imbuf/intern/bmp.c6
-rw-r--r--source/blender/imbuf/intern/jp2.c26
-rw-r--r--source/blender/imbuf/intern/util.c15
-rw-r--r--source/blender/makesrna/intern/rna_nodetree_types.h1
-rw-r--r--source/blender/nodes/CMakeLists.txt1
-rw-r--r--source/blender/nodes/NOD_shader.h1
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_gamma.c63
-rw-r--r--source/blender/python/mathutils/mathutils_geometry.c3
-rw-r--r--source/blender/quicktime/apple/qtkit_export.m4
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c2
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp10
58 files changed, 839 insertions, 354 deletions
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index a0282988179..f5cc01cd062 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -446,6 +446,9 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
xml_read_enum(&mix->type, MixNode::type_enum, node, "type");
snode = mix;
}
+ else if(string_iequals(node.name(), "gamma")) {
+ snode = new GammaNode();
+ }
else if(string_iequals(node.name(), "combine_rgb")) {
snode = new CombineRGBNode();
}
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 4191fef4dcd..ecc85a92ae0 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -160,6 +160,10 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node *
node = new InvertNode();
break;
}
+ case BL::ShaderNode::type_GAMMA: {
+ node = new GammaNode();
+ break;
+ }
case BL::ShaderNode::type_MIX_RGB: {
BL::ShaderNodeMixRGB b_mix_node(b_node);
MixNode *mix = new MixNode();
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index 65338eeea6e..e17544bf7af 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -59,6 +59,7 @@ set(SRC_SVM_HEADERS
svm/svm_convert.h
svm/svm_displace.h
svm/svm_fresnel.h
+ svm/svm_gamma.h
svm/svm_geometry.h
svm/svm_gradient.h
svm/svm_hsv.h
diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt
index 5c1fd8b75d8..1a207d6c139 100644
--- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt
+++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt
@@ -19,6 +19,7 @@ set(SRC_OSL
node_emission.osl
node_environment_texture.osl
node_fresnel.osl
+ node_gamma.osl
node_geometry.osl
node_glass_bsdf.osl
node_glossy_bsdf.osl
diff --git a/intern/cycles/kernel/osl/nodes/node_gamma.osl b/intern/cycles/kernel/osl/nodes/node_gamma.osl
new file mode 100644
index 00000000000..4dae07d70bc
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_gamma.osl
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * 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.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+
+shader node_gamma(
+ color ColorIn = color(0.8, 0.8, 0.8),
+ float Gamma = 1.0,
+ output ColorOut = color(0.8, 0.8, 0.8)
+{
+ int i;
+ for (i=0;i<3;i++) {
+ if (ColorIn[i] > 0.0)
+ ColorIn[i] = powf(ColorIn[i], Gamma);
+ }
+
+ ColorOut = ColorIn;
+}
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 2beff7ff7e6..5a8d6d62c79 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -130,6 +130,7 @@ CCL_NAMESPACE_END
#include "svm_geometry.h"
#include "svm_hsv.h"
#include "svm_image.h"
+#include "svm_gamma.h"
#include "svm_invert.h"
#include "svm_light_path.h"
#include "svm_magic.h"
@@ -262,6 +263,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT
case NODE_INVERT:
svm_node_invert(sd, stack, node.y, node.z, node.w);
break;
+ case NODE_GAMMA:
+ svm_node_gamma(sd, stack, node.y, node.z, node.w);
+ break;
case NODE_MIX:
svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset);
break;
diff --git a/intern/cycles/kernel/svm/svm_gamma.h b/intern/cycles/kernel/svm/svm_gamma.h
new file mode 100644
index 00000000000..4a8967011c7
--- /dev/null
+++ b/intern/cycles/kernel/svm/svm_gamma.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * 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.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+CCL_NAMESPACE_BEGIN
+
+__device void svm_node_gamma(ShaderData *sd, float *stack, uint in_gamma, uint in_color, uint out_color)
+{
+ float3 color = stack_load_float3(stack, in_color);
+ float gamma = stack_load_float(stack, in_gamma);
+
+ if (color.x > 0.0)
+ color.x = powf(color.x, gamma);
+ if (color.y > 0.0)
+ color.y = powf(color.y, gamma);
+ if (color.z > 0.0)
+ color.z = powf(color.z, gamma);
+
+ if (stack_valid(out_color))
+ stack_store_float3(stack, out_color, color);
+}
+
+CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h
index e5e3175761b..c46df3f08c8 100644
--- a/intern/cycles/kernel/svm/svm_types.h
+++ b/intern/cycles/kernel/svm/svm_types.h
@@ -85,7 +85,8 @@ typedef enum NodeType {
NODE_HSV = 5200,
NODE_CAMERA = 5300,
NODE_INVERT = 5400,
- NODE_NORMAL = 5500
+ NODE_NORMAL = 5500,
+ NODE_GAMMA = 5600
} NodeType;
typedef enum NodeAttributeType {
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index aec6f1f3e26..5cabb248709 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -1726,6 +1726,33 @@ void CombineRGBNode::compile(OSLCompiler& compiler)
compiler.add(this, "node_combine_rgb");
}
+/* Gamma */
+GammaNode::GammaNode()
+: ShaderNode("gamma")
+{
+ add_input("Color", SHADER_SOCKET_COLOR);
+ add_input("Gamma", SHADER_SOCKET_FLOAT);
+ add_output("Color", SHADER_SOCKET_COLOR);
+}
+
+void GammaNode::compile(SVMCompiler& compiler)
+{
+ ShaderInput *color_in = input("Color");
+ ShaderInput *gamma_in = input("Gamma");
+ ShaderOutput *color_out = output("Color");
+
+ compiler.stack_assign(color_in);
+ compiler.stack_assign(gamma_in);
+ compiler.stack_assign(color_out);
+
+ compiler.add_node(NODE_GAMMA, gamma_in->stack_offset, color_in->stack_offset, color_out->stack_offset);
+}
+
+void GammaNode::compile(OSLCompiler& compiler)
+{
+ compiler.add(this, "node_gamma");
+}
+
/* Separate RGB */
SeparateRGBNode::SeparateRGBNode()
: ShaderNode("separate_rgb")
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 9d947de1af5..28fff22fc34 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -302,6 +302,11 @@ public:
SHADER_NODE_CLASS(CombineRGBNode)
};
+class GammaNode : public ShaderNode {
+public:
+ SHADER_NODE_CLASS(GammaNode)
+};
+
class SeparateRGBNode : public ShaderNode {
public:
SHADER_NODE_CLASS(SeparateRGBNode)
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index a021695b7c9..c6fdd2e1adc 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -63,7 +63,8 @@ char *tcc_to_char (unsigned int tcc);
/* implemetation */
-unsigned int GET_FCC (FILE *fp) {
+unsigned int GET_FCC (FILE *fp)
+{
unsigned char tmp[4];
tmp[0] = getc(fp);
@@ -74,7 +75,8 @@ unsigned int GET_FCC (FILE *fp) {
return FCC (tmp);
}
-unsigned int GET_TCC (FILE *fp) {
+unsigned int GET_TCC (FILE *fp)
+{
char tmp[5];
tmp[0] = getc(fp);
@@ -85,7 +87,8 @@ unsigned int GET_TCC (FILE *fp) {
return FCC (tmp);
}
-char *fcc_to_char (unsigned int fcc) {
+char *fcc_to_char (unsigned int fcc)
+{
DEBUG_FCC[0]= (fcc)&127;
DEBUG_FCC[1]= (fcc>>8)&127;
DEBUG_FCC[2]= (fcc>>16)&127;
@@ -94,7 +97,8 @@ char *fcc_to_char (unsigned int fcc) {
return DEBUG_FCC;
}
-char *tcc_to_char (unsigned int tcc) {
+char *tcc_to_char (unsigned int tcc)
+{
DEBUG_FCC[0]= (tcc)&127;
DEBUG_FCC[1]= (tcc>>8)&127;
DEBUG_FCC[2]= 0;
@@ -103,7 +107,8 @@ char *tcc_to_char (unsigned int tcc) {
return DEBUG_FCC;
}
-int AVI_get_stream (AviMovie *movie, int avist_type, int stream_num) {
+int AVI_get_stream (AviMovie *movie, int avist_type, int stream_num)
+{
int cur_stream;
if (movie == NULL)
@@ -121,7 +126,8 @@ int AVI_get_stream (AviMovie *movie, int avist_type, int stream_num) {
return -AVI_ERROR_FOUND;
}
-static int fcc_get_stream (int fcc) {
+static int fcc_get_stream (int fcc)
+{
char fccs[4];
fccs[0] = fcc;
@@ -132,7 +138,8 @@ static int fcc_get_stream (int fcc) {
return 10*(fccs[0]-'0') + (fccs[1]-'0');
}
-static int fcc_is_data (int fcc) {
+static int fcc_is_data (int fcc)
+{
char fccs[4];
fccs[0] = fcc;
@@ -148,7 +155,8 @@ static int fcc_is_data (int fcc) {
return 1;
}
-AviError AVI_print_error (AviError in_error) {
+AviError AVI_print_error (AviError in_error)
+{
int error;
if ((int) in_error < 0)
@@ -190,12 +198,14 @@ AviError AVI_print_error (AviError in_error) {
return in_error;
}
/*
-void AVI_set_debug (int mode) {
+void AVI_set_debug (int mode)
+{
AVI_DEBUG= mode;
}
*/
/*
-int AVI_is_avi (char *name) {
+int AVI_is_avi (char *name)
+{
FILE *fp;
int ret;
@@ -216,7 +226,8 @@ int AVI_is_avi (char *name) {
}
*/
-int AVI_is_avi (const char *name) {
+int AVI_is_avi (const char *name)
+{
int temp, fcca, j;
AviMovie movie= {NULL};
AviMainHeader header;
@@ -407,7 +418,8 @@ int AVI_is_avi (const char *name) {
}
-AviError AVI_open_movie (const char *name, AviMovie *movie) {
+AviError AVI_open_movie (const char *name, AviMovie *movie)
+{
int temp, fcca, size, j;
DEBUG_PRINT("opening movie\n");
@@ -619,7 +631,11 @@ AviError AVI_open_movie (const char *name, AviMovie *movie) {
movie->entries[temp].Offset = GET_FCC (movie->fp);
movie->entries[temp].Size = GET_FCC (movie->fp);
- if (AVI_DEBUG) printf ("Index entry %04d: ChunkId:%s Flags:%d Offset:%d Size:%d\n", temp, fcc_to_char(movie->entries[temp].ChunkId), movie->entries[temp].Flags, movie->entries[temp].Offset, movie->entries[temp].Size);
+ if (AVI_DEBUG) {
+ printf("Index entry %04d: ChunkId:%s Flags:%d Offset:%d Size:%d\n",
+ temp, fcc_to_char(movie->entries[temp].ChunkId), movie->entries[temp].Flags,
+ movie->entries[temp].Offset, movie->entries[temp].Size);
+ }
}
/* Some AVI's have offset entries in absolute coordinates
@@ -637,7 +653,8 @@ AviError AVI_open_movie (const char *name, AviMovie *movie) {
return AVI_ERROR_NONE;
}
-void *AVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream) {
+void *AVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream)
+{
int cur_frame=-1, temp, i=0, rewind=1;
void *buffer;
@@ -681,7 +698,8 @@ void *AVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream)
return buffer;
}
-AviError AVI_close (AviMovie *movie) {
+AviError AVI_close (AviMovie *movie)
+{
int i;
fclose (movie->fp);
@@ -703,7 +721,8 @@ AviError AVI_close (AviMovie *movie) {
return AVI_ERROR_NONE;
}
-AviError AVI_open_compress (char *name, AviMovie *movie, int streams, ...) {
+AviError AVI_open_compress (char *name, AviMovie *movie, int streams, ...)
+{
va_list ap;
AviList list;
AviChunk chunk;
@@ -892,7 +911,8 @@ AviError AVI_open_compress (char *name, AviMovie *movie, int streams, ...) {
return AVI_ERROR_NONE;
}
-AviError AVI_write_frame (AviMovie *movie, int frame_num, ...) {
+AviError AVI_write_frame (AviMovie *movie, int frame_num, ...)
+{
AviList list;
AviChunk chunk;
AviIndexEntry *temp;
@@ -999,7 +1019,8 @@ AviError AVI_write_frame (AviMovie *movie, int frame_num, ...) {
return AVI_ERROR_NONE;
}
-AviError AVI_close_compress (AviMovie *movie) {
+AviError AVI_close_compress (AviMovie *movie)
+{
int temp, movi_size, i;
fseek (movie->fp, 0L, SEEK_END);
diff --git a/source/blender/avi/intern/codecs.c b/source/blender/avi/intern/codecs.c
index 78d8d4a32b2..73af7097994 100644
--- a/source/blender/avi/intern/codecs.c
+++ b/source/blender/avi/intern/codecs.c
@@ -40,7 +40,8 @@
#include "mjpeg.h"
#include "rgb32.h"
-void *avi_format_convert (AviMovie *movie, int stream, void *buffer, AviFormat from, AviFormat to, int *size) {
+void *avi_format_convert (AviMovie *movie, int stream, void *buffer, AviFormat from, AviFormat to, int *size)
+{
if (from == to)
return buffer;
@@ -82,7 +83,8 @@ void *avi_format_convert (AviMovie *movie, int stream, void *buffer, AviFormat f
return buffer;
}
-int avi_get_data_id (AviFormat format, int stream) {
+int avi_get_data_id (AviFormat format, int stream)
+{
char fcc[5];
if (avi_get_format_type (format) == FCC("vids"))
@@ -95,7 +97,8 @@ int avi_get_data_id (AviFormat format, int stream) {
return FCC(fcc);
}
-int avi_get_format_type (AviFormat format) {
+int avi_get_format_type (AviFormat format)
+{
switch (format) {
case AVI_FORMAT_RGB24:
case AVI_FORMAT_RGB32:
@@ -109,7 +112,8 @@ int avi_get_format_type (AviFormat format) {
}
}
-int avi_get_format_fcc (AviFormat format) {
+int avi_get_format_fcc (AviFormat format)
+{
switch (format) {
case AVI_FORMAT_RGB24:
case AVI_FORMAT_RGB32:
@@ -125,7 +129,8 @@ int avi_get_format_fcc (AviFormat format) {
}
}
-int avi_get_format_compression (AviFormat format) {
+int avi_get_format_compression (AviFormat format)
+{
switch (format) {
case AVI_FORMAT_RGB24:
case AVI_FORMAT_RGB32:
diff --git a/source/blender/avi/intern/endian.c b/source/blender/avi/intern/endian.c
index 194880605b6..29b3047eca4 100644
--- a/source/blender/avi/intern/endian.c
+++ b/source/blender/avi/intern/endian.c
@@ -43,7 +43,8 @@
#include "avi_intern.h"
#ifdef __BIG_ENDIAN__
-static void invert (int *num) {
+static void invert (int *num)
+{
int new=0,i,j;
for (j=0; j < 4; j++) {
@@ -55,7 +56,8 @@ static void invert (int *num) {
*num = new;
}
-static void sinvert (short int *num) {
+static void sinvert (short int *num)
+{
short int new=0;
int i,j;
@@ -68,20 +70,23 @@ static void sinvert (short int *num) {
*num = new;
}
-static void Ichunk (AviChunk *chunk) {
+static void Ichunk (AviChunk *chunk)
+{
invert (&chunk->fcc);
invert (&chunk->size);
}
#endif
#ifdef __BIG_ENDIAN__
-static void Ilist (AviList *list){
+static void Ilist (AviList *list)
+{
invert (&list->fcc);
invert (&list->size);
invert (&list->ids);
}
-static void Imainh (AviMainHeader *mainh) {
+static void Imainh (AviMainHeader *mainh)
+{
invert (&mainh->fcc);
invert (&mainh->size);
invert (&mainh->MicroSecPerFrame);
@@ -100,7 +105,8 @@ static void Imainh (AviMainHeader *mainh) {
invert (&mainh->Reserved[3]);
}
-static void Istreamh (AviStreamHeader *streamh) {
+static void Istreamh (AviStreamHeader *streamh)
+{
invert (&streamh->fcc);
invert (&streamh->size);
invert (&streamh->Type);
@@ -122,7 +128,8 @@ static void Istreamh (AviStreamHeader *streamh) {
sinvert (&streamh->bottom);
}
-static void Ibitmaph (AviBitmapInfoHeader *bitmaph) {
+static void Ibitmaph (AviBitmapInfoHeader *bitmaph)
+{
invert (&bitmaph->fcc);
invert (&bitmaph->size);
invert (&bitmaph->Size);
@@ -138,7 +145,8 @@ static void Ibitmaph (AviBitmapInfoHeader *bitmaph) {
invert (&bitmaph->ClrImportant);
}
-static void Imjpegu (AviMJPEGUnknown *mjpgu) {
+static void Imjpegu (AviMJPEGUnknown *mjpgu)
+{
invert (&mjpgu->a);
invert (&mjpgu->b);
invert (&mjpgu->c);
@@ -148,7 +156,8 @@ static void Imjpegu (AviMJPEGUnknown *mjpgu) {
invert (&mjpgu->g);
}
-static void Iindexe (AviIndexEntry *indexe) {
+static void Iindexe (AviIndexEntry *indexe)
+{
invert (&indexe->ChunkId);
invert (&indexe->Flags);
invert (&indexe->Offset);
@@ -156,7 +165,8 @@ static void Iindexe (AviIndexEntry *indexe) {
}
#endif /* __BIG_ENDIAN__ */
-void awrite (AviMovie *movie, void *datain, int block, int size, FILE *fp, int type) {
+void awrite (AviMovie *movie, void *datain, int block, int size, FILE *fp, int type)
+{
#ifdef __BIG_ENDIAN__
void *data;
diff --git a/source/blender/avi/intern/mjpeg.c b/source/blender/avi/intern/mjpeg.c
index e55549bd05e..dab0b213d95 100644
--- a/source/blender/avi/intern/mjpeg.c
+++ b/source/blender/avi/intern/mjpeg.c
@@ -50,7 +50,8 @@ static void jpegmemsrcmgr_build (j_decompress_ptr dinfo, unsigned char *buffer,
static int numbytes;
-static void add_huff_table (j_decompress_ptr dinfo, JHUFF_TBL **htblptr, const UINT8 *bits, const UINT8 *val) {
+static void add_huff_table (j_decompress_ptr dinfo, JHUFF_TBL **htblptr, const UINT8 *bits, const UINT8 *val)
+{
if (*htblptr == NULL)
*htblptr = jpeg_alloc_huff_table((j_common_ptr) dinfo);
@@ -64,7 +65,8 @@ static void add_huff_table (j_decompress_ptr dinfo, JHUFF_TBL **htblptr, const U
/* Set up the standard Huffman tables (cf. JPEG standard section K.3) */
/* IMPORTANT: these are only valid for 8-bit data precision! */
-static void std_huff_tables (j_decompress_ptr dinfo) {
+static void std_huff_tables (j_decompress_ptr dinfo)
+{
static const UINT8 bits_dc_luminance[17] =
{ /* 0-base */
0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
@@ -142,7 +144,8 @@ static void std_huff_tables (j_decompress_ptr dinfo) {
bits_ac_chrominance, val_ac_chrominance);
}
-static int Decode_JPEG(unsigned char *inBuffer, unsigned char *outBuffer, unsigned int width, unsigned int height, int bufsize) {
+static int Decode_JPEG(unsigned char *inBuffer, unsigned char *outBuffer, unsigned int width, unsigned int height, int bufsize)
+{
int rowstride;
unsigned int y;
struct jpeg_decompress_struct dinfo;
@@ -194,7 +197,8 @@ static int Decode_JPEG(unsigned char *inBuffer, unsigned char *outBuffer, unsign
return 1;
}
-static void Compress_JPEG(int quality, unsigned char *outbuffer, unsigned char *inBuffer, int width, int height, int bufsize) {
+static void Compress_JPEG(int quality, unsigned char *outbuffer, unsigned char *inBuffer, int width, int height, int bufsize)
+{
int i, rowstride;
unsigned int y;
struct jpeg_compress_struct cinfo;
@@ -255,7 +259,8 @@ static void Compress_JPEG(int quality, unsigned char *outbuffer, unsigned char *
jpeg_destroy_compress(&cinfo);
}
-static void interlace(unsigned char *to, unsigned char *from, int width, int height) {
+static void interlace(unsigned char *to, unsigned char *from, int width, int height)
+{
int i, rowstride= width*3;
for (i=0; i<height; i++) {
@@ -266,7 +271,8 @@ static void interlace(unsigned char *to, unsigned char *from, int width, int hei
}
}
-static void deinterlace(int odd, unsigned char *to, unsigned char *from, int width, int height) {
+static void deinterlace(int odd, unsigned char *to, unsigned char *from, int width, int height)
+{
int i, rowstride= width*3;
for (i=0; i<height; i++) {
@@ -277,7 +283,8 @@ static void deinterlace(int odd, unsigned char *to, unsigned char *from, int wid
}
}
-static int check_and_decode_jpeg(unsigned char *inbuf, unsigned char *outbuf, int width, int height, int bufsize) {
+static int check_and_decode_jpeg(unsigned char *inbuf, unsigned char *outbuf, int width, int height, int bufsize)
+{
/* JPEG's are always multiples of 16, extra is cropped out AVI's */
if ((width&0xF) || (height&0xF)) {
int i, rrowstride, jrowstride;
@@ -299,7 +306,8 @@ static int check_and_decode_jpeg(unsigned char *inbuf, unsigned char *outbuf, in
}
}
-static void check_and_compress_jpeg(int quality, unsigned char *outbuf, unsigned char *inbuf, int width, int height, int bufsize) {
+static void check_and_compress_jpeg(int quality, unsigned char *outbuf, unsigned char *inbuf, int width, int height, int bufsize)
+{
/* JPEG's are always multiples of 16, extra is ignored in AVI's */
if ((width&0xF) || (height&0xF)) {
int i, rrowstride, jrowstride;
@@ -326,7 +334,8 @@ static void check_and_compress_jpeg(int quality, unsigned char *outbuf, unsigned
}
}
-void *avi_converter_from_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size) {
+void *avi_converter_from_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size)
+{
int deint;
unsigned char *buf;
@@ -349,7 +358,8 @@ void *avi_converter_from_mjpeg (AviMovie *movie, int stream, unsigned char *buff
return buf;
}
-void *avi_converter_to_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size) {
+void *avi_converter_to_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size)
+{
unsigned char *buf;
int bufsize= *size;
@@ -380,22 +390,26 @@ void *avi_converter_to_mjpeg (AviMovie *movie, int stream, unsigned char *buffer
/* Compression from memory */
-static void jpegmemdestmgr_init_destination(j_compress_ptr cinfo) {
+static void jpegmemdestmgr_init_destination(j_compress_ptr cinfo)
+{
(void)cinfo; /* unused */
}
-static boolean jpegmemdestmgr_empty_output_buffer(j_compress_ptr cinfo) {
+static boolean jpegmemdestmgr_empty_output_buffer(j_compress_ptr cinfo)
+{
(void)cinfo; /* unused */
return TRUE;
}
-static void jpegmemdestmgr_term_destination(j_compress_ptr cinfo) {
+static void jpegmemdestmgr_term_destination(j_compress_ptr cinfo)
+{
numbytes-= cinfo->dest->free_in_buffer;
MEM_freeN(cinfo->dest);
}
-static void jpegmemdestmgr_build(j_compress_ptr cinfo, unsigned char *buffer, int bufsize) {
+static void jpegmemdestmgr_build(j_compress_ptr cinfo, unsigned char *buffer, int bufsize)
+{
cinfo->dest= MEM_mallocN(sizeof(*(cinfo->dest)), "avi.jpegmemdestmgr_build");
cinfo->dest->init_destination= jpegmemdestmgr_init_destination;
@@ -410,11 +424,13 @@ static void jpegmemdestmgr_build(j_compress_ptr cinfo, unsigned char *buffer, in
/* Decompression from memory */
-static void jpegmemsrcmgr_init_source(j_decompress_ptr dinfo) {
+static void jpegmemsrcmgr_init_source(j_decompress_ptr dinfo)
+{
(void)dinfo;
}
-static boolean jpegmemsrcmgr_fill_input_buffer(j_decompress_ptr dinfo) {
+static boolean jpegmemsrcmgr_fill_input_buffer(j_decompress_ptr dinfo)
+{
unsigned char *buf= (unsigned char*) dinfo->src->next_input_byte-2;
/* if we get called, must have run out of data */
@@ -429,7 +445,8 @@ static boolean jpegmemsrcmgr_fill_input_buffer(j_decompress_ptr dinfo) {
return TRUE;
}
-static void jpegmemsrcmgr_skip_input_data(j_decompress_ptr dinfo, long skipcnt) {
+static void jpegmemsrcmgr_skip_input_data(j_decompress_ptr dinfo, long skipcnt)
+{
if (dinfo->src->bytes_in_buffer<skipcnt)
skipcnt= dinfo->src->bytes_in_buffer;
@@ -437,13 +454,15 @@ static void jpegmemsrcmgr_skip_input_data(j_decompress_ptr dinfo, long skipcnt)
dinfo->src->bytes_in_buffer-= skipcnt;
}
-static void jpegmemsrcmgr_term_source(j_decompress_ptr dinfo) {
+static void jpegmemsrcmgr_term_source(j_decompress_ptr dinfo)
+{
numbytes-= dinfo->src->bytes_in_buffer;
MEM_freeN(dinfo->src);
}
-static void jpegmemsrcmgr_build(j_decompress_ptr dinfo, unsigned char *buffer, int bufsize) {
+static void jpegmemsrcmgr_build(j_decompress_ptr dinfo, unsigned char *buffer, int bufsize)
+{
dinfo->src= MEM_mallocN(sizeof(*(dinfo->src)), "avi.jpegmemsrcmgr_build");
dinfo->src->init_source= jpegmemsrcmgr_init_source;
diff --git a/source/blender/avi/intern/options.c b/source/blender/avi/intern/options.c
index bda153d0cd3..483b708bee6 100644
--- a/source/blender/avi/intern/options.c
+++ b/source/blender/avi/intern/options.c
@@ -43,7 +43,8 @@
/* avi_set_compress_options gets its own file... now don't WE feel important? */
-AviError AVI_set_compress_option (AviMovie *movie, int option_type, int stream, AviOption option, void *opt_data) {
+AviError AVI_set_compress_option (AviMovie *movie, int option_type, int stream, AviOption option, void *opt_data)
+{
int i;
int useconds;
diff --git a/source/blender/avi/intern/rgb32.c b/source/blender/avi/intern/rgb32.c
index 4d088377c9e..e3be082cca6 100644
--- a/source/blender/avi/intern/rgb32.c
+++ b/source/blender/avi/intern/rgb32.c
@@ -40,7 +40,8 @@
#include "MEM_guardedalloc.h"
#include "rgb32.h"
-void *avi_converter_from_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size) {
+void *avi_converter_from_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size)
+{
int y, x, rowstridea, rowstrideb;
unsigned char *buf;
@@ -65,7 +66,8 @@ void *avi_converter_from_rgb32 (AviMovie *movie, int stream, unsigned char *buff
return buf;
}
-void *avi_converter_to_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size) {
+void *avi_converter_to_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size)
+{
int i;
unsigned char *buf;
unsigned char *to, *from;
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 5dbf22b54bf..378e5872791 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -521,6 +521,7 @@ struct ShadeResult;
#define SH_NODE_LAYER_WEIGHT 160
#define SH_NODE_VOLUME_TRANSPARENT 161
#define SH_NODE_VOLUME_ISOTROPIC 162
+#define SH_NODE_GAMMA 163
/* custom defines options for Material node */
#define SH_NODE_MAT_DIFF 1
diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c
index 6656d06e72e..ec2e6b3c078 100644
--- a/source/blender/blenkernel/intern/boids.c
+++ b/source/blender/blenkernel/intern/boids.c
@@ -1514,7 +1514,8 @@ BoidState *boid_new_state(BoidSettings *boids)
return state;
}
-BoidState *boid_duplicate_state(BoidSettings *boids, BoidState *state) {
+BoidState *boid_duplicate_state(BoidSettings *boids, BoidState *state)
+{
BoidState *staten = MEM_dupallocN(state);
BLI_duplicatelist(&staten->rules, &state->rules);
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index fb734ea4f3d..25ff7b5fa04 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -1508,10 +1508,7 @@ int BKE_write_ibuf(ImBuf *ibuf, const char *name, ImageFormatData *imf)
int ok;
- if(imtype == -1) {
- /* use whatever existing image type is set by 'ibuf' */
- }
- else if(imtype== R_IMF_IMTYPE_IRIS) {
+ if(imtype== R_IMF_IMTYPE_IRIS) {
ibuf->ftype= IMAGIC;
}
#ifdef WITH_HDR
@@ -2277,7 +2274,10 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_
ibuf->x= rres.rectx;
ibuf->y= rres.recty;
- if(ibuf->rect_float!=rectf || rect) /* ensure correct redraw */
+ /* free rect buffer if float buffer changes, so it can be recreated with
+ the updated result, and also in case we got byte buffer from sequencer,
+ so we don't keep reference to freed buffer */
+ if(ibuf->rect_float!=rectf || rect || !rectf)
imb_freerectImBuf(ibuf);
if(rect)
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 7be6ef9968d..cc49e8465b9 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -1899,6 +1899,7 @@ static void registerShaderNodes(bNodeTreeType *ttype)
register_node_type_sh_output(ttype);
register_node_type_sh_material(ttype);
register_node_type_sh_camera(ttype);
+ register_node_type_sh_gamma(ttype);
register_node_type_sh_value(ttype);
register_node_type_sh_rgb(ttype);
register_node_type_sh_mix_rgb(ttype);
diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c
index ae622358fd2..15ce2e377b6 100644
--- a/source/blender/blenkernel/intern/ocean.c
+++ b/source/blender/blenkernel/intern/ocean.c
@@ -1343,7 +1343,8 @@ typedef struct Ocean {
} Ocean;
-float BKE_ocean_jminus_to_foam(float UNUSED(jminus), float UNUSED(coverage)) {
+float BKE_ocean_jminus_to_foam(float UNUSED(jminus), float UNUSED(coverage))
+{
return 0.0f;
}
diff --git a/source/blender/blenkernel/intern/suggestions.c b/source/blender/blenkernel/intern/suggestions.c
index 48bc4926a85..e1e872c42b6 100644
--- a/source/blender/blenkernel/intern/suggestions.c
+++ b/source/blender/blenkernel/intern/suggestions.c
@@ -47,7 +47,8 @@ static SuggList suggestions = {NULL, NULL, NULL, NULL, NULL};
static char *documentation = NULL;
//static int doc_lines = 0;
-static int txttl_cmp(const char *first, const char *second, int len) {
+static int txttl_cmp(const char *first, const char *second, int len)
+{
int cmp, i;
for (cmp=0, i=0; i<len; i++) {
if ( (cmp= toupper(first[i])-toupper(second[i])) ) {
@@ -57,7 +58,8 @@ static int txttl_cmp(const char *first, const char *second, int len) {
return cmp;
}
-static void txttl_free_suggest(void) {
+static void txttl_free_suggest(void)
+{
SuggItem *item, *prev;
for (item = suggestions.last; item; item=prev) {
prev = item->prev;
@@ -69,7 +71,8 @@ static void txttl_free_suggest(void) {
suggestions.top = 0;
}
-static void txttl_free_docs(void) {
+static void txttl_free_docs(void)
+{
if (documentation) {
MEM_freeN(documentation);
documentation = NULL;
@@ -80,23 +83,27 @@ static void txttl_free_docs(void) {
/* General tool functions */
/**************************/
-void free_texttools(void) {
+void free_texttools(void)
+{
txttl_free_suggest();
txttl_free_docs();
}
-void texttool_text_set_active(Text *text) {
+void texttool_text_set_active(Text *text)
+{
if (activeToolText == text) return;
texttool_text_clear();
activeToolText = text;
}
-void texttool_text_clear(void) {
+void texttool_text_clear(void)
+{
free_texttools();
activeToolText = NULL;
}
-short texttool_text_is_active(Text *text) {
+short texttool_text_is_active(Text *text)
+{
return activeToolText==text ? 1 : 0;
}
@@ -104,7 +111,8 @@ short texttool_text_is_active(Text *text) {
/* Suggestion list methods */
/***************************/
-void texttool_suggest_add(const char *name, char type) {
+void texttool_suggest_add(const char *name, char type)
+{
SuggItem *newitem, *item;
int len, cmp;
@@ -154,7 +162,8 @@ void texttool_suggest_add(const char *name, char type) {
suggestions.top= 0;
}
-void texttool_suggest_prefix(const char *prefix) {
+void texttool_suggest_prefix(const char *prefix)
+{
SuggItem *match, *first, *last;
int cmp, len = strlen(prefix), top = 0;
@@ -194,27 +203,33 @@ void texttool_suggest_prefix(const char *prefix) {
}
}
-void texttool_suggest_clear(void) {
+void texttool_suggest_clear(void)
+{
txttl_free_suggest();
}
-SuggItem *texttool_suggest_first(void) {
+SuggItem *texttool_suggest_first(void)
+{
return suggestions.firstmatch;
}
-SuggItem *texttool_suggest_last(void) {
+SuggItem *texttool_suggest_last(void)
+{
return suggestions.lastmatch;
}
-void texttool_suggest_select(SuggItem *sel) {
+void texttool_suggest_select(SuggItem *sel)
+{
suggestions.selected = sel;
}
-SuggItem *texttool_suggest_selected(void) {
+SuggItem *texttool_suggest_selected(void)
+{
return suggestions.selected;
}
-int *texttool_suggest_top(void) {
+int *texttool_suggest_top(void)
+{
return &suggestions.top;
}
@@ -222,7 +237,8 @@ int *texttool_suggest_top(void) {
/* Documentation methods */
/*************************/
-void texttool_docs_show(const char *docs) {
+void texttool_docs_show(const char *docs)
+{
int len;
if (!docs) return;
@@ -246,10 +262,12 @@ void texttool_docs_show(const char *docs) {
documentation[len] = '\0';
}
-char *texttool_docs_get(void) {
+char *texttool_docs_get(void)
+{
return documentation;
}
-void texttool_docs_clear(void) {
+void texttool_docs_clear(void)
+{
txttl_free_docs();
}
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 60cc029bf6e..7e102bc9854 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -2851,7 +2851,8 @@ void txt_add_marker(Text *text, TextLine *line, int start, int end, const unsign
/* Returns the first matching marker on the specified line between two points.
If the group or flags fields are non-zero the returned flag must be in the
specified group and have at least the specified flags set. */
-TextMarker *txt_find_marker_region(Text *text, TextLine *line, int start, int end, int group, int flags) {
+TextMarker *txt_find_marker_region(Text *text, TextLine *line, int start, int end, int group, int flags)
+{
TextMarker *marker, *next;
int lineno= txt_get_span(text->lines.first, line);
@@ -2918,7 +2919,8 @@ short txt_clear_markers(Text *text, int group, int flags)
/* Finds the marker at the specified line and cursor position with at least the
specified flags set in the given group (if non-zero). */
-TextMarker *txt_find_marker(Text *text, TextLine *line, int curs, int group, int flags) {
+TextMarker *txt_find_marker(Text *text, TextLine *line, int curs, int group, int flags)
+{
TextMarker *marker;
int lineno= txt_get_span(text->lines.first, line);
@@ -2936,7 +2938,8 @@ TextMarker *txt_find_marker(Text *text, TextLine *line, int curs, int group, int
/* Finds the previous marker in the same group. If no other is found, the same
marker will be returned */
-TextMarker *txt_prev_marker(Text *text, TextMarker *marker) {
+TextMarker *txt_prev_marker(Text *text, TextMarker *marker)
+{
TextMarker *tmp= marker;
while (tmp) {
if (tmp->prev) tmp= tmp->prev;
@@ -2949,7 +2952,8 @@ TextMarker *txt_prev_marker(Text *text, TextMarker *marker) {
/* Finds the next marker in the same group. If no other is found, the same
marker will be returned */
-TextMarker *txt_next_marker(Text *text, TextMarker *marker) {
+TextMarker *txt_next_marker(Text *text, TextMarker *marker)
+{
TextMarker *tmp= marker;
while (tmp) {
if (tmp->next) tmp= tmp->next;
diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h
index 976519c281a..f2a7e73e5e0 100644
--- a/source/blender/blenlib/BLI_ghash.h
+++ b/source/blender/blenlib/BLI_ghash.h
@@ -142,6 +142,16 @@ int BLI_ghashutil_strcmp (const void *a, const void *b);
unsigned int BLI_ghashutil_inthash (const void *ptr);
int BLI_ghashutil_intcmp (const void *a, const void *b);
+typedef struct GHashPair {
+ const void *first;
+ int second;
+} GHashPair;
+
+GHashPair* BLI_ghashutil_pairalloc (const void *first, int second);
+unsigned int BLI_ghashutil_pairhash (const void *ptr);
+int BLI_ghashutil_paircmp (const void *a, const void *b);
+void BLI_ghashutil_pairfree (void *ptr);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenlib/intern/BLI_dynstr.c b/source/blender/blenlib/intern/BLI_dynstr.c
index 5cdadce7c01..349bc3492e7 100644
--- a/source/blender/blenlib/intern/BLI_dynstr.c
+++ b/source/blender/blenlib/intern/BLI_dynstr.c
@@ -94,7 +94,8 @@ void BLI_dynstr_append(DynStr *ds, const char *cstr)
ds->curlen+= cstrlen;
}
-void BLI_dynstr_nappend(DynStr *ds, const char *cstr, int len) {
+void BLI_dynstr_nappend(DynStr *ds, const char *cstr, int len)
+{
DynStrElem *dse= malloc(sizeof(*dse));
int cstrlen= BLI_strnlen(cstr, len);
@@ -225,7 +226,8 @@ int BLI_dynstr_get_len(DynStr *ds)
return ds->curlen;
}
-char *BLI_dynstr_get_cstring(DynStr *ds) {
+char *BLI_dynstr_get_cstring(DynStr *ds)
+{
char *s, *rets= MEM_mallocN(ds->curlen+1, "dynstr_cstring");
DynStrElem *dse;
@@ -241,7 +243,8 @@ char *BLI_dynstr_get_cstring(DynStr *ds) {
return rets;
}
-void BLI_dynstr_free(DynStr *ds) {
+void BLI_dynstr_free(DynStr *ds)
+{
DynStrElem *dse;
for (dse= ds->elems; dse; ) {
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index 25b3da7a442..950acb21e17 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -56,7 +56,8 @@ unsigned int hashsizes[]= {
/***/
-GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) {
+GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info)
+{
GHash *gh= MEM_mallocN(sizeof(*gh), info);
gh->hashfp= hashfp;
gh->cmpfp= cmpfp;
@@ -72,11 +73,13 @@ GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) {
return gh;
}
-int BLI_ghash_size(GHash *gh) {
+int BLI_ghash_size(GHash *gh)
+{
return gh->nentries;
}
-void BLI_ghash_insert(GHash *gh, void *key, void *val) {
+void BLI_ghash_insert(GHash *gh, void *key, void *val)
+{
unsigned int hash= gh->hashfp(key)%gh->nbuckets;
Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool);
@@ -109,7 +112,8 @@ void BLI_ghash_insert(GHash *gh, void *key, void *val) {
}
}
-void *BLI_ghash_lookup(GHash *gh, const void *key) {
+void *BLI_ghash_lookup(GHash *gh, const void *key)
+{
if(gh) {
unsigned int hash= gh->hashfp(key)%gh->nbuckets;
Entry *e;
@@ -151,7 +155,8 @@ int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFr
return 0;
}
-int BLI_ghash_haskey(GHash *gh, void *key) {
+int BLI_ghash_haskey(GHash *gh, void *key)
+{
unsigned int hash= gh->hashfp(key)%gh->nbuckets;
Entry *e;
@@ -162,7 +167,8 @@ int BLI_ghash_haskey(GHash *gh, void *key) {
return 0;
}
-void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) {
+void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
+{
int i;
if (keyfreefp || valfreefp) {
@@ -190,7 +196,8 @@ void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreef
/***/
-GHashIterator *BLI_ghashIterator_new(GHash *gh) {
+GHashIterator *BLI_ghashIterator_new(GHash *gh)
+{
GHashIterator *ghi= MEM_mallocN(sizeof(*ghi), "ghash iterator");
ghi->gh= gh;
ghi->curEntry= NULL;
@@ -203,7 +210,8 @@ GHashIterator *BLI_ghashIterator_new(GHash *gh) {
}
return ghi;
}
-void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh) {
+void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh)
+{
ghi->gh= gh;
ghi->curEntry= NULL;
ghi->curBucket= -1;
@@ -214,18 +222,22 @@ void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh) {
ghi->curEntry= ghi->gh->buckets[ghi->curBucket];
}
}
-void BLI_ghashIterator_free(GHashIterator *ghi) {
+void BLI_ghashIterator_free(GHashIterator *ghi)
+{
MEM_freeN(ghi);
}
-void *BLI_ghashIterator_getKey(GHashIterator *ghi) {
+void *BLI_ghashIterator_getKey(GHashIterator *ghi)
+{
return ghi->curEntry?ghi->curEntry->key:NULL;
}
-void *BLI_ghashIterator_getValue(GHashIterator *ghi) {
+void *BLI_ghashIterator_getValue(GHashIterator *ghi)
+{
return ghi->curEntry?ghi->curEntry->val:NULL;
}
-void BLI_ghashIterator_step(GHashIterator *ghi) {
+void BLI_ghashIterator_step(GHashIterator *ghi)
+{
if (ghi->curEntry) {
ghi->curEntry= ghi->curEntry->next;
while (!ghi->curEntry) {
@@ -236,23 +248,27 @@ void BLI_ghashIterator_step(GHashIterator *ghi) {
}
}
}
-int BLI_ghashIterator_isDone(GHashIterator *ghi) {
+int BLI_ghashIterator_isDone(GHashIterator *ghi)
+{
return !ghi->curEntry;
}
/***/
-unsigned int BLI_ghashutil_ptrhash(const void *key) {
+unsigned int BLI_ghashutil_ptrhash(const void *key)
+{
return (unsigned int)(intptr_t)key;
}
-int BLI_ghashutil_ptrcmp(const void *a, const void *b) {
+int BLI_ghashutil_ptrcmp(const void *a, const void *b)
+{
if (a==b)
return 0;
else
return (a<b)?-1:1;
}
-unsigned int BLI_ghashutil_inthash(const void *ptr) {
+unsigned int BLI_ghashutil_inthash(const void *ptr)
+{
uintptr_t key = (uintptr_t)ptr;
key += ~(key << 16);
@@ -265,14 +281,16 @@ unsigned int BLI_ghashutil_inthash(const void *ptr) {
return (unsigned int)(key & 0xffffffff);
}
-int BLI_ghashutil_intcmp(const void *a, const void *b) {
+int BLI_ghashutil_intcmp(const void *a, const void *b)
+{
if (a==b)
return 0;
else
return (a<b)?-1:1;
}
-unsigned int BLI_ghashutil_strhash(const void *ptr) {
+unsigned int BLI_ghashutil_strhash(const void *ptr)
+{
const char *s= ptr;
unsigned int i= 0;
unsigned char c;
@@ -282,6 +300,39 @@ unsigned int BLI_ghashutil_strhash(const void *ptr) {
return i;
}
-int BLI_ghashutil_strcmp(const void *a, const void *b) {
+int BLI_ghashutil_strcmp(const void *a, const void *b)
+{
return strcmp(a, b);
}
+
+GHashPair *BLI_ghashutil_pairalloc(const void *first, int second)
+{
+ GHashPair *pair = MEM_mallocN(sizeof(GHashPair), "GHashPair");
+ pair->first = first;
+ pair->second = second;
+ return pair;
+}
+
+unsigned int BLI_ghashutil_pairhash(const void *ptr)
+{
+ const GHashPair *pair = ptr;
+ unsigned int hash = BLI_ghashutil_ptrhash(pair->first);
+ return hash ^ BLI_ghashutil_inthash(SET_INT_IN_POINTER(pair->second));
+}
+
+int BLI_ghashutil_paircmp(const void *a, const void *b)
+{
+ const GHashPair *A = a;
+ const GHashPair *B = b;
+
+ int cmp = BLI_ghashutil_ptrcmp(A->first, B->first);
+ if(cmp == 0)
+ return BLI_ghashutil_intcmp(SET_INT_IN_POINTER(A->second), SET_INT_IN_POINTER(B->second));
+ return cmp;
+}
+
+void BLI_ghashutil_pairfree(void *ptr)
+{
+ MEM_freeN((void*)ptr);
+}
+
diff --git a/source/blender/blenlib/intern/BLI_linklist.c b/source/blender/blenlib/intern/BLI_linklist.c
index a9b8cbb6467..6300817ec03 100644
--- a/source/blender/blenlib/intern/BLI_linklist.c
+++ b/source/blender/blenlib/intern/BLI_linklist.c
@@ -35,7 +35,8 @@
#include "BLI_linklist.h"
#include "BLI_memarena.h"
-int BLI_linklist_length(LinkNode *list) {
+int BLI_linklist_length(LinkNode *list)
+{
if (0) {
return list?(1+BLI_linklist_length(list->next)):0;
} else {
@@ -70,7 +71,8 @@ LinkNode *BLI_linklist_find(LinkNode *list, int index)
return NULL;
}
-void BLI_linklist_reverse(LinkNode **listp) {
+void BLI_linklist_reverse(LinkNode **listp)
+{
LinkNode *rhead= NULL, *cur= *listp;
while (cur) {
@@ -85,7 +87,8 @@ void BLI_linklist_reverse(LinkNode **listp) {
*listp= rhead;
}
-void BLI_linklist_prepend(LinkNode **listp, void *ptr) {
+void BLI_linklist_prepend(LinkNode **listp, void *ptr)
+{
LinkNode *nlink= MEM_mallocN(sizeof(*nlink), "nlink");
nlink->link= ptr;
@@ -93,7 +96,8 @@ void BLI_linklist_prepend(LinkNode **listp, void *ptr) {
*listp= nlink;
}
-void BLI_linklist_append(LinkNode **listp, void *ptr) {
+void BLI_linklist_append(LinkNode **listp, void *ptr)
+{
LinkNode *nlink= MEM_mallocN(sizeof(*nlink), "nlink");
LinkNode *node = *listp;
@@ -110,7 +114,8 @@ void BLI_linklist_append(LinkNode **listp, void *ptr) {
}
}
-void BLI_linklist_prepend_arena(LinkNode **listp, void *ptr, MemArena *ma) {
+void BLI_linklist_prepend_arena(LinkNode **listp, void *ptr, MemArena *ma)
+{
LinkNode *nlink= BLI_memarena_alloc(ma, sizeof(*nlink));
nlink->link= ptr;
@@ -118,7 +123,8 @@ void BLI_linklist_prepend_arena(LinkNode **listp, void *ptr, MemArena *ma) {
*listp= nlink;
}
-void BLI_linklist_insert_after(LinkNode **listp, void *ptr) {
+void BLI_linklist_insert_after(LinkNode **listp, void *ptr)
+{
LinkNode *nlink= MEM_mallocN(sizeof(*nlink), "nlink");
LinkNode *node = *listp;
@@ -134,7 +140,8 @@ void BLI_linklist_insert_after(LinkNode **listp, void *ptr) {
}
}
-void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc) {
+void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc)
+{
while (list) {
LinkNode *next= list->next;
@@ -146,7 +153,8 @@ void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc) {
}
}
-void BLI_linklist_apply(LinkNode *list, LinkNodeApplyFP applyfunc, void *userdata) {
+void BLI_linklist_apply(LinkNode *list, LinkNodeApplyFP applyfunc, void *userdata)
+{
for (; list; list= list->next)
applyfunc(list->link, userdata);
}
diff --git a/source/blender/blenlib/intern/BLI_memarena.c b/source/blender/blenlib/intern/BLI_memarena.c
index 308fc6a61e6..4debe1a4b04 100644
--- a/source/blender/blenlib/intern/BLI_memarena.c
+++ b/source/blender/blenlib/intern/BLI_memarena.c
@@ -48,7 +48,8 @@ struct MemArena {
LinkNode *bufs;
};
-MemArena *BLI_memarena_new(int bufsize, const char *name) {
+MemArena *BLI_memarena_new(int bufsize, const char *name)
+{
MemArena *ma= MEM_callocN(sizeof(*ma), "memarena");
ma->bufsize= bufsize;
ma->align = 8;
@@ -57,20 +58,24 @@ MemArena *BLI_memarena_new(int bufsize, const char *name) {
return ma;
}
-void BLI_memarena_use_calloc(MemArena *ma) {
+void BLI_memarena_use_calloc(MemArena *ma)
+{
ma->use_calloc= 1;
}
-void BLI_memarena_use_malloc(MemArena *ma) {
+void BLI_memarena_use_malloc(MemArena *ma)
+{
ma->use_calloc= 0;
}
-void BLI_memarena_use_align(struct MemArena *ma, int align) {
+void BLI_memarena_use_align(struct MemArena *ma, int align)
+{
/* align should be a power of two */
ma->align = align;
}
-void BLI_memarena_free(MemArena *ma) {
+void BLI_memarena_free(MemArena *ma)
+{
BLI_linklist_free(ma->bufs, (void(*)(void*)) MEM_freeN);
MEM_freeN(ma);
}
@@ -78,7 +83,8 @@ void BLI_memarena_free(MemArena *ma) {
/* amt must be power of two */
#define PADUP(num, amt) ((num+(amt-1))&~(amt-1))
-void *BLI_memarena_alloc(MemArena *ma, int size) {
+void *BLI_memarena_alloc(MemArena *ma, int size)
+{
void *ptr;
/* ensure proper alignment by rounding
diff --git a/source/blender/blenlib/intern/edgehash.c b/source/blender/blenlib/intern/edgehash.c
index 4b4bff7df78..dbd138a3563 100644
--- a/source/blender/blenlib/intern/edgehash.c
+++ b/source/blender/blenlib/intern/edgehash.c
@@ -42,7 +42,8 @@
/***/
-EdgeHash *BLI_edgehash_new(void) {
+EdgeHash *BLI_edgehash_new(void)
+{
EdgeHash *eh= MEM_callocN(sizeof(*eh), "EdgeHash");
eh->cursize= 0;
eh->nentries= 0;
@@ -54,11 +55,13 @@ EdgeHash *BLI_edgehash_new(void) {
return eh;
}
-int BLI_edgehash_size(EdgeHash *eh) {
+int BLI_edgehash_size(EdgeHash *eh)
+{
return eh->nentries;
}
-void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP valfreefp) {
+void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP valfreefp)
+{
int i;
for (i=0; i<eh->nbuckets; i++) {
@@ -78,7 +81,8 @@ void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP valfreefp) {
eh->nentries= 0;
}
-void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp) {
+void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp)
+{
BLI_edgehash_clear(eh, valfreefp);
BLI_mempool_destroy(eh->epool);
@@ -96,7 +100,8 @@ struct EdgeHashIterator {
EdgeEntry *curEntry;
};
-EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh) {
+EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh)
+{
EdgeHashIterator *ehi= MEM_mallocN(sizeof(*ehi), "eh iter");
ehi->eh= eh;
ehi->curEntry= NULL;
@@ -109,26 +114,31 @@ EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh) {
}
return ehi;
}
-void BLI_edgehashIterator_free(EdgeHashIterator *ehi) {
+void BLI_edgehashIterator_free(EdgeHashIterator *ehi)
+{
MEM_freeN(ehi);
}
-void BLI_edgehashIterator_getKey(EdgeHashIterator *ehi, int *v0_r, int *v1_r) {
+void BLI_edgehashIterator_getKey(EdgeHashIterator *ehi, int *v0_r, int *v1_r)
+{
if (ehi->curEntry) {
*v0_r = ehi->curEntry->v0;
*v1_r = ehi->curEntry->v1;
}
}
-void *BLI_edgehashIterator_getValue(EdgeHashIterator *ehi) {
+void *BLI_edgehashIterator_getValue(EdgeHashIterator *ehi)
+{
return ehi->curEntry?ehi->curEntry->val:NULL;
}
-void BLI_edgehashIterator_setValue(EdgeHashIterator *ehi, void *val) {
+void BLI_edgehashIterator_setValue(EdgeHashIterator *ehi, void *val)
+{
if(ehi->curEntry)
ehi->curEntry->val= val;
}
-void BLI_edgehashIterator_step(EdgeHashIterator *ehi) {
+void BLI_edgehashIterator_step(EdgeHashIterator *ehi)
+{
if (ehi->curEntry) {
ehi->curEntry= ehi->curEntry->next;
while (!ehi->curEntry) {
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c
index b1b7ebed18e..28dc5a696d5 100644
--- a/source/blender/blenlib/intern/rand.c
+++ b/source/blender/blenlib/intern/rand.c
@@ -78,11 +78,13 @@ void rng_free(RNG* rng)
MEM_freeN(rng);
}
-void rng_seed(RNG *rng, unsigned int seed) {
+void rng_seed(RNG *rng, unsigned int seed)
+{
rng->X= (((r_uint64) seed)<<16) | LOWSEED;
}
-void rng_srandom(RNG *rng, unsigned int seed) {
+void rng_srandom(RNG *rng, unsigned int seed)
+{
rng_seed(rng, seed + hash[seed & 255]);
seed= rng_getInt(rng);
rng_seed(rng, seed + hash[seed & 255]);
@@ -90,16 +92,19 @@ void rng_srandom(RNG *rng, unsigned int seed) {
rng_seed(rng, seed + hash[seed & 255]);
}
-int rng_getInt(RNG *rng) {
+int rng_getInt(RNG *rng)
+{
rng->X= (MULTIPLIER*rng->X + ADDEND)&MASK;
return (int) (rng->X>>17);
}
-double rng_getDouble(RNG *rng) {
+double rng_getDouble(RNG *rng)
+{
return (double) rng_getInt(rng)/0x80000000;
}
-float rng_getFloat(RNG *rng) {
+float rng_getFloat(RNG *rng)
+{
return (float) rng_getInt(rng)/0x80000000;
}
@@ -135,28 +140,34 @@ void rng_skip(RNG *rng, int n)
static RNG theBLI_rng = {0};
/* note, this one creates periodical patterns */
-void BLI_srand(unsigned int seed) {
+void BLI_srand(unsigned int seed)
+{
rng_seed(&theBLI_rng, seed);
}
/* using hash table to create better seed */
-void BLI_srandom(unsigned int seed) {
+void BLI_srandom(unsigned int seed)
+{
rng_srandom(&theBLI_rng, seed);
}
-int BLI_rand(void) {
+int BLI_rand(void)
+{
return rng_getInt(&theBLI_rng);
}
-double BLI_drand(void) {
+double BLI_drand(void)
+{
return rng_getDouble(&theBLI_rng);
}
-float BLI_frand(void) {
+float BLI_frand(void)
+{
return rng_getFloat(&theBLI_rng);
}
-void BLI_fillrand(void *addr, int len) {
+void BLI_fillrand(void *addr, int len)
+{
RNG rng;
unsigned char *p= addr;
@@ -188,11 +199,13 @@ void BLI_thread_srandom(int thread, unsigned int seed)
rng_seed(&rng_tab[thread], seed + hash[seed & 255]);
}
-int BLI_thread_rand(int thread) {
+int BLI_thread_rand(int thread)
+{
return rng_getInt(&rng_tab[thread]);
}
-float BLI_thread_frand(int thread) {
+float BLI_thread_frand(int thread)
+{
return rng_getFloat(&rng_tab[thread]);
}
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index 1b5bb607386..b2002b63a22 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -49,7 +49,8 @@
/* FILE_MAX */
-int BLI_getInstallationDir( char * str ) {
+int BLI_getInstallationDir( char * str )
+{
char dir[FILE_MAXDIR];
int a;
@@ -73,7 +74,8 @@ void RegisterBlendExtension_Fail(HKEY root)
TerminateProcess(GetCurrentProcess(),1);
}
-void RegisterBlendExtension(void) {
+void RegisterBlendExtension(void)
+{
LONG lresult;
HKEY hkey = 0;
HKEY root = 0;
@@ -167,7 +169,8 @@ void RegisterBlendExtension(void) {
TerminateProcess(GetCurrentProcess(),0);
}
-DIR *opendir (const char *path) {
+DIR *opendir (const char *path)
+{
if (GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY) {
DIR *newd= MEM_mallocN(sizeof(DIR), "opendir");
@@ -185,7 +188,8 @@ DIR *opendir (const char *path) {
}
}
-struct dirent *readdir(DIR *dp) {
+struct dirent *readdir(DIR *dp)
+{
if (dp->direntry.d_name) {
MEM_freeN(dp->direntry.d_name);
dp->direntry.d_name= NULL;
@@ -208,7 +212,8 @@ struct dirent *readdir(DIR *dp) {
}
}
-int closedir (DIR *dp) {
+int closedir (DIR *dp)
+{
if (dp->direntry.d_name) MEM_freeN(dp->direntry.d_name);
if (dp->handle!=INVALID_HANDLE_VALUE) FindClose(dp->handle);
@@ -217,7 +222,8 @@ int closedir (DIR *dp) {
return 0;
}
-void get_default_root(char* root) {
+void get_default_root(char* root)
+{
char str[MAX_PATH+1];
/* the default drive to resolve a directory without a specified drive
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index f3a99ecf6b8..7dd07db9b30 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -389,17 +389,7 @@ void uiRoundBox(float minx, float miny, float maxx, float maxy, float rad)
glEnable( GL_BLEND );
}
- /* solid part */
- uiDrawBox(GL_POLYGON, minx, miny, maxx, maxy, rad);
-
- /* set antialias line */
- glEnable( GL_LINE_SMOOTH );
- glEnable( GL_BLEND );
-
- uiDrawBox(GL_LINE_LOOP, minx, miny, maxx, maxy, rad);
-
- glDisable( GL_BLEND );
- glDisable( GL_LINE_SMOOTH );
+ ui_draw_anti_roundbox(GL_POLYGON, minx, miny, maxx, maxy, rad);
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index d6460f9046e..e4cc605e3f5 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -462,6 +462,7 @@ extern int ui_button_is_active(struct ARegion *ar);
/* interface_widgets.c */
void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
+void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad);
void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect);
void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect);
int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol);
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 9a438070e1e..0da4d3895e0 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -200,7 +200,25 @@ void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND);
+}
+
+void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad)
+{
+ float color[4];
+ int j;
+
+ glEnable(GL_BLEND);
+ glGetFloatv(GL_CURRENT_COLOR, color);
+ color[3] *= 0.125f;
+ glColor4fv(color);
+ for(j=0; j<8; j++) {
+ glTranslatef(1.0f * jit[j][0], 1.0f * jit[j][1], 0.0f);
+ uiDrawBox(mode, minx, miny, maxx, maxy, rad);
+ glTranslatef(-1.0f * jit[j][0], -1.0f * jit[j][1], 0.0f);
+ }
+
+ glDisable(GL_BLEND);
}
static void widget_init(uiWidgetBase *wtb)
diff --git a/source/blender/editors/mesh/mesh_navmesh.c b/source/blender/editors/mesh/mesh_navmesh.c
index bb96fe25ffd..5eb1fd234e4 100644
--- a/source/blender/editors/mesh/mesh_navmesh.c
+++ b/source/blender/editors/mesh/mesh_navmesh.c
@@ -529,7 +529,8 @@ void MESH_OT_navmesh_face_copy(struct wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int compare(const void * a, const void * b){
+static int compare(const void * a, const void * b)
+{
return ( *(int*)a - *(int*)b );
}
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 4db6e4ece54..438d04ba69b 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -47,9 +47,10 @@
#include "DNA_speaker_types.h"
#include "DNA_vfont_types.h"
+#include "BLI_ghash.h"
+#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_string.h"
-#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BKE_anim.h"
@@ -1052,11 +1053,17 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
{
ListBase *lb;
DupliObject *dob;
-
+ GHash *dupli_gh= NULL, *parent_gh= NULL;
+
if(!(base->object->transflag & OB_DUPLI))
return;
lb= object_duplilist(scene, base->object);
+
+ if(use_hierarchy || use_base_parent) {
+ dupli_gh= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "make_object_duplilist_real dupli_gh");
+ parent_gh= BLI_ghash_new(BLI_ghashutil_pairhash, BLI_ghashutil_paircmp, "make_object_duplilist_real parent_gh");
+ }
for(dob= lb->first; dob; dob= dob->next) {
Base *basen;
@@ -1085,6 +1092,11 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
copy_m4_m4(ob->obmat, dob->mat);
object_apply_mat4(ob, ob->obmat, FALSE, FALSE);
+
+ if(dupli_gh)
+ BLI_ghash_insert(dupli_gh, dob, ob);
+ if(parent_gh)
+ BLI_ghash_insert(parent_gh, BLI_ghashutil_pairalloc(dob->ob, dob->index), ob);
}
if (use_hierarchy) {
@@ -1093,12 +1105,17 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
Object *ob_src= dob->ob;
Object *ob_src_par= ob_src->parent;
- Object *ob_dst= (Object *)ob_src->id.newid;
+ Object *ob_dst= BLI_ghash_lookup(dupli_gh, dob);
+ Object *ob_dst_par= NULL;
- if (ob_src_par && ob_src_par->id.newid) {
- /* the parent was also made real, parent newly real duplis */
- Object *ob_dst_par= (Object *)ob_src_par->id.newid;
+ /* find parent that was also made real */
+ if(ob_src_par) {
+ GHashPair *pair = BLI_ghashutil_pairalloc(ob_src_par, dob->index);
+ ob_dst_par = BLI_ghash_lookup(parent_gh, pair);
+ BLI_ghashutil_pairfree(pair);
+ }
+ if (ob_dst_par) {
/* allow for all possible parent types */
ob_dst->partype= ob_src->partype;
BLI_strncpy(ob_dst->parsubstr, ob_src->parsubstr, sizeof(ob_dst->parsubstr));
@@ -1132,8 +1149,7 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
* base object */
for(dob= lb->first; dob; dob= dob->next) {
/* original parents */
- Object *ob_src= dob->ob;
- Object *ob_dst= (Object *)ob_src->id.newid;
+ Object *ob_dst= BLI_ghash_lookup(dupli_gh, dob);
ob_dst->parent= base->object;
ob_dst->partype= PAROBJECT;
@@ -1147,6 +1163,11 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
}
}
+ if(dupli_gh)
+ BLI_ghash_free(dupli_gh, NULL, NULL);
+ if(parent_gh)
+ BLI_ghash_free(parent_gh, BLI_ghashutil_pairfree, NULL);
+
copy_object_set_idnew(C, 0);
free_object_duplilist(lb);
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index 5930e66e9fe..4020d6923e4 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -2605,8 +2605,8 @@ static int set_active_group_exec(bContext *C, wmOperator *op)
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
int nr= RNA_enum_get(op->ptr, "group");
+ BLI_assert(nr+1 >= 0);
ob->actdef= nr+1;
- BLI_assert(ob->actdef >= 0);
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
@@ -2740,8 +2740,8 @@ static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op)
sort_map_update[0]= 0;
vgroup_remap_update_users(ob, sort_map_update);
+ BLI_assert(sort_map_update[ob->actdef] >= 0);
ob->actdef= sort_map_update[ob->actdef];
- BLI_assert(ob->actdef >= 0);
MEM_freeN(sort_map_update);
diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index 0cecfa05b49..62e0e5e201d 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -59,7 +59,8 @@
#include "physics_intern.h"
-static int cache_break_test(void *UNUSED(cbd)) {
+static int cache_break_test(void *UNUSED(cbd))
+{
return G.afbreek==1;
}
static int ptcache_bake_all_poll(bContext *C)
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 69c6092b27b..23e937e3d71 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -1103,8 +1103,8 @@ static int weight_sample_group_exec(bContext *C, wmOperator *op)
ViewContext vc;
view3d_set_viewcontext(C, &vc);
+ BLI_assert(type + 1 >= 0);
vc.obact->actdef= type + 1;
- BLI_assert(vc.obact->actdef >= 0);
DAG_id_tag_update(&vc.obact->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, vc.obact);
@@ -1998,8 +1998,9 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *UNUSED
dg= ED_vgroup_add_name(ob, pchan->name); /* sets actdef */
}
else {
- ob->actdef= 1 + BLI_findindex(&ob->defbase, dg);
- BLI_assert(ob->actdef >= 0);
+ int actdef = 1 + BLI_findindex(&ob->defbase, dg);
+ BLI_assert(actdef >= 0);
+ ob->actdef= actdef;
}
}
}
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index dd7ea81d520..8eb1f08b5b0 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -212,6 +212,104 @@ static void SOUND_OT_open_mono(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "mono", TRUE, "Mono", "Mixdown the sound to mono");
}
+/* ******************************************************* */
+
+static int sound_update_animation_flags_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Sequence* seq;
+ Scene* scene = CTX_data_scene(C);
+ struct FCurve* fcu;
+ char driven;
+
+ SEQ_BEGIN(scene->ed, seq) {
+ fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "volume", 0, &driven);
+ if(fcu || driven)
+ seq->flag |= SEQ_AUDIO_VOLUME_ANIMATED;
+ else
+ seq->flag &= ~SEQ_AUDIO_VOLUME_ANIMATED;
+
+ fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pitch", 0, &driven);
+ if(fcu || driven)
+ seq->flag |= SEQ_AUDIO_PITCH_ANIMATED;
+ else
+ seq->flag &= ~SEQ_AUDIO_PITCH_ANIMATED;
+
+ fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pan", 0, &driven);
+ if(fcu || driven)
+ seq->flag |= SEQ_AUDIO_PAN_ANIMATED;
+ else
+ seq->flag &= ~SEQ_AUDIO_PAN_ANIMATED;
+ }
+ SEQ_END
+
+ fcu = id_data_find_fcurve(&scene->id, scene, &RNA_Scene, "audio_volume", 0, &driven);
+ if(fcu || driven)
+ scene->audio.flag |= AUDIO_VOLUME_ANIMATED;
+ else
+ scene->audio.flag &= ~AUDIO_VOLUME_ANIMATED;
+
+ return OPERATOR_FINISHED;
+}
+
+static void SOUND_OT_update_animation_flags(wmOperatorType *ot)
+{
+ /*
+ This operator is needed to set a correct state of the sound animation
+ System. Unfortunately there's no really correct place to call the exec
+ function, that's why I made it an operator that's only visible in the
+ search menu. Apart from that the bake animation operator calls it too.
+ */
+
+ /* identifiers */
+ ot->name= "Update animation";
+ ot->description= "Update animation flags";
+ ot->idname= "SOUND_OT_update_animation_flags";
+
+ /* api callbacks */
+ ot->exec= sound_update_animation_flags_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER;
+}
+
+/* ******************************************************* */
+
+static int sound_bake_animation_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Main* bmain = CTX_data_main(C);
+ Scene* scene = CTX_data_scene(C);
+ int oldfra = scene->r.cfra;
+ int cfra;
+
+ sound_update_animation_flags_exec(C, NULL);
+
+ for(cfra = scene->r.sfra > 0 ? scene->r.sfra - 1 : 0; cfra <= scene->r.efra + 1; cfra++)
+ {
+ scene->r.cfra = cfra;
+ scene_update_for_newframe(bmain, scene, scene->lay);
+ }
+
+ scene->r.cfra = oldfra;
+ scene_update_for_newframe(bmain, scene, scene->lay);
+
+ return OPERATOR_FINISHED;
+}
+
+static void SOUND_OT_bake_animation(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Update animation cache";
+ ot->description= "Updates the audio animation cache so that it's up to date";
+ ot->idname= "SOUND_OT_bake_animation";
+
+ /* api callbacks */
+ ot->exec= sound_bake_animation_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER;
+}
+
+
/******************** mixdown operator ********************/
static int sound_mixdown_exec(bContext *C, wmOperator *op)
@@ -228,6 +326,8 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op)
AUD_Codec codec;
const char* result;
+ sound_bake_animation_exec(C, op);
+
RNA_string_get(op->ptr, "filepath", path);
bitrate = RNA_int_get(op->ptr, "bitrate") * 1000;
accuracy = RNA_int_get(op->ptr, "accuracy");
@@ -615,104 +715,6 @@ static void SOUND_OT_unpack(wmOperatorType *ot)
/* ******************************************************* */
-static int sound_update_animation_flags_exec(bContext *C, wmOperator *UNUSED(op))
-{
- Sequence* seq;
- Scene* scene = CTX_data_scene(C);
- struct FCurve* fcu;
- char driven;
-
- SEQ_BEGIN(scene->ed, seq) {
- fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "volume", 0, &driven);
- if(fcu || driven)
- seq->flag |= SEQ_AUDIO_VOLUME_ANIMATED;
- else
- seq->flag &= ~SEQ_AUDIO_VOLUME_ANIMATED;
-
- fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pitch", 0, &driven);
- if(fcu || driven)
- seq->flag |= SEQ_AUDIO_PITCH_ANIMATED;
- else
- seq->flag &= ~SEQ_AUDIO_PITCH_ANIMATED;
-
- fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pan", 0, &driven);
- if(fcu || driven)
- seq->flag |= SEQ_AUDIO_PAN_ANIMATED;
- else
- seq->flag &= ~SEQ_AUDIO_PAN_ANIMATED;
- }
- SEQ_END
-
- fcu = id_data_find_fcurve(&scene->id, scene, &RNA_Scene, "audio_volume", 0, &driven);
- if(fcu || driven)
- scene->audio.flag |= AUDIO_VOLUME_ANIMATED;
- else
- scene->audio.flag &= ~AUDIO_VOLUME_ANIMATED;
-
- return OPERATOR_FINISHED;
-}
-
-static void SOUND_OT_update_animation_flags(wmOperatorType *ot)
-{
- /*
- This operator is needed to set a correct state of the sound animation
- System. Unfortunately there's no really correct place to call the exec
- function, that's why I made it an operator that's only visible in the
- search menu. Apart from that the bake animation operator calls it too.
- */
-
- /* identifiers */
- ot->name= "Update animation";
- ot->description= "Update animation flags";
- ot->idname= "SOUND_OT_update_animation_flags";
-
- /* api callbacks */
- ot->exec= sound_update_animation_flags_exec;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER;
-}
-
-/* ******************************************************* */
-
-static int sound_bake_animation_exec(bContext *C, wmOperator *UNUSED(op))
-{
- Main* bmain = CTX_data_main(C);
- Scene* scene = CTX_data_scene(C);
- int oldfra = scene->r.cfra;
- int cfra;
-
- sound_update_animation_flags_exec(C, NULL);
-
- for(cfra = scene->r.sfra > 0 ? scene->r.sfra - 1 : 0; cfra <= scene->r.efra + 1; cfra++)
- {
- scene->r.cfra = cfra;
- scene_update_for_newframe(bmain, scene, scene->lay);
- }
-
- scene->r.cfra = oldfra;
- scene_update_for_newframe(bmain, scene, scene->lay);
-
- return OPERATOR_FINISHED;
-}
-
-static void SOUND_OT_bake_animation(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Update animation cache";
- ot->description= "Updates the audio animation cache so that it's up to date";
- ot->idname= "SOUND_OT_bake_animation";
-
- /* api callbacks */
- ot->exec= sound_bake_animation_exec;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER;
-}
-
-
-/* ******************************************************* */
-
void ED_operatortypes_sound(void)
{
WM_operatortype_append(SOUND_OT_open);
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
index 89547edaafa..e728267f45f 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -396,8 +396,8 @@ static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *
/* id in tselem is object */
ob= (Object *)tselem->id;
if(set) {
+ BLI_assert(te->index+1 >= 0);
ob->actdef= te->index+1;
- BLI_assert(ob->actdef >= 0);
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 992fe921dbf..a0c39eaa3c6 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -380,7 +380,8 @@ static void viewRedrawPost(bContext *C, TransInfo *t)
/* ************************** TRANSFORMATIONS **************************** */
-void BIF_selectOrientation(void) {
+void BIF_selectOrientation(void)
+{
#if 0 // TRANSFORM_FIX_ME
short val;
char *str_menu = BIF_menustringTransformOrientation("Orientation");
@@ -2551,7 +2552,8 @@ void initResize(TransInfo *t)
t->num.increment = t->snap[1];
}
-static void headerResize(TransInfo *t, float vec[3], char *str) {
+static void headerResize(TransInfo *t, float vec[3], char *str)
+{
char tvec[60];
char *spos= str;
if (hasNumInput(&t->num)) {
@@ -2611,7 +2613,8 @@ static void TransMat3ToSize( float mat[][3], float smat[][3], float *size)
}
-static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
+static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
+{
float tmat[3][3], smat[3][3], center[3];
float vec[3];
@@ -2908,7 +2911,8 @@ void initRotation(TransInfo *t)
copy_v3_v3(t->axis_orig, t->axis);
}
-static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short around) {
+static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short around)
+{
float vec[3], totmat[3][3], smat[3][3];
float eul[3], fmat[3][3], quat[4];
float *center = t->center;
@@ -3348,7 +3352,8 @@ void initTranslation(TransInfo *t)
t->num.increment = t->snap[1];
}
-static void headerTranslation(TransInfo *t, float vec[3], char *str) {
+static void headerTranslation(TransInfo *t, float vec[3], char *str)
+{
char *spos= str;
char tvec[60];
char distvec[20];
@@ -3422,7 +3427,8 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
(void)spos;
}
-static void applyTranslation(TransInfo *t, float vec[3]) {
+static void applyTranslation(TransInfo *t, float vec[3])
+{
TransData *td = t->data;
float tvec[3];
int i;
@@ -4104,7 +4110,8 @@ void initBoneSize(TransInfo *t)
t->num.increment = t->snap[1];
}
-static void headerBoneSize(TransInfo *t, float vec[3], char *str) {
+static void headerBoneSize(TransInfo *t, float vec[3], char *str)
+{
char tvec[60];
if (hasNumInput(&t->num)) {
outputNumInput(&(t->num), tvec);
@@ -5194,7 +5201,8 @@ static void headerSeqSlide(TransInfo *t, float val[2], char *str)
sprintf(str, "Sequence Slide: %s%s", &tvec[0], t->con.text);
}
-static void applySeqSlide(TransInfo *t, float val[2]) {
+static void applySeqSlide(TransInfo *t, float val[2])
+{
TransData *td = t->data;
int i;
@@ -5718,7 +5726,8 @@ void initTimeScale(TransInfo *t)
t->num.increment = t->snap[1];
}
-static void headerTimeScale(TransInfo *t, char *str) {
+static void headerTimeScale(TransInfo *t, char *str)
+{
char tvec[60];
if (hasNumInput(&t->num))
@@ -5729,7 +5738,8 @@ static void headerTimeScale(TransInfo *t, char *str) {
sprintf(str, "ScaleX: %s", &tvec[0]);
}
-static void applyTimeScale(TransInfo *t) {
+static void applyTimeScale(TransInfo *t)
+{
Scene *scene = t->scene;
TransData *td = t->data;
TransData2D *td2d = t->data2d;
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index bfb96149ed3..b88e57e1861 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -138,7 +138,8 @@ void constraintNumInput(TransInfo *t, float vec[3])
}
}
-static void postConstraintChecks(TransInfo *t, float vec[3], float pvec[3]) {
+static void postConstraintChecks(TransInfo *t, float vec[3], float pvec[3])
+{
int i = 0;
mul_m3_v3(t->con.imtx, vec);
@@ -209,7 +210,8 @@ static void viewAxisCorrectCenter(TransInfo *t, float t_con_center[3])
}
}
-static void axisProjection(TransInfo *t, float axis[3], float in[3], float out[3]) {
+static void axisProjection(TransInfo *t, float axis[3], float in[3], float out[3])
+{
float norm[3], vec[3], factor, angle;
float t_con_center[3];
@@ -284,7 +286,8 @@ static void axisProjection(TransInfo *t, float axis[3], float in[3], float out[3
}
}
-static void planeProjection(TransInfo *t, float in[3], float out[3]) {
+static void planeProjection(TransInfo *t, float in[3], float out[3])
+{
float vec[3], factor, norm[3];
add_v3_v3v3(vec, in, t->con.center);
@@ -547,7 +550,8 @@ static void applyObjectConstraintRot(TransInfo *t, TransData *td, float vec[3],
/*--------------------- INTERNAL SETUP CALLS ------------------*/
-void setConstraint(TransInfo *t, float space[3][3], int mode, const char text[]) {
+void setConstraint(TransInfo *t, float space[3][3], int mode, const char text[])
+{
strncpy(t->con.text + 1, text, 48);
copy_m3_m3(t->con.mtx, space);
t->con.mode = mode;
@@ -562,7 +566,8 @@ void setConstraint(TransInfo *t, float space[3][3], int mode, const char text[])
t->redraw = 1;
}
-void setLocalConstraint(TransInfo *t, int mode, const char text[]) {
+void setLocalConstraint(TransInfo *t, int mode, const char text[])
+{
if (t->flag & T_EDIT) {
float obmat[3][3];
copy_m3_m4(obmat, t->scene->obedit->obmat);
@@ -596,7 +601,8 @@ void setLocalConstraint(TransInfo *t, int mode, const char text[]) {
ftext is a format string passed to sprintf. It will add the name of
the orientation where %s is (logically).
*/
-void setUserConstraint(TransInfo *t, short orientation, int mode, const char ftext[]) {
+void setUserConstraint(TransInfo *t, short orientation, int mode, const char ftext[])
+{
char text[40];
switch(orientation) {
@@ -744,7 +750,8 @@ void drawPropCircle(const struct bContext *C, TransInfo *t)
}
}
-static void drawObjectConstraint(TransInfo *t) {
+static void drawObjectConstraint(TransInfo *t)
+{
int i;
TransData * td = t->data;
@@ -781,13 +788,15 @@ static void drawObjectConstraint(TransInfo *t) {
/*--------------------- START / STOP CONSTRAINTS ---------------------- */
-void startConstraint(TransInfo *t) {
+void startConstraint(TransInfo *t)
+{
t->con.mode |= CON_APPLY;
*t->con.text = ' ';
t->num.idx_max = MIN2(getConstraintSpaceDimension(t) - 1, t->idx_max);
}
-void stopConstraint(TransInfo *t) {
+void stopConstraint(TransInfo *t)
+{
t->con.mode &= ~(CON_APPLY|CON_SELECT);
*t->con.text = '\0';
t->num.idx_max = t->idx_max;
@@ -836,7 +845,8 @@ void initSelectConstraint(TransInfo *t, float mtx[3][3])
t->con.applyRot = applyAxisConstraintRot;
}
-void selectConstraint(TransInfo *t) {
+void selectConstraint(TransInfo *t)
+{
if (t->con.mode & CON_SELECT) {
setNearestAxis(t);
startConstraint(t);
@@ -970,7 +980,8 @@ void setNearestAxis(TransInfo *t)
/*-------------- HELPER FUNCTIONS ----------------*/
-char constraintModeToChar(TransInfo *t) {
+char constraintModeToChar(TransInfo *t)
+{
if ((t->con.mode & CON_APPLY)==0) {
return '\0';
}
@@ -990,7 +1001,8 @@ char constraintModeToChar(TransInfo *t) {
}
-int isLockConstraint(TransInfo *t) {
+int isLockConstraint(TransInfo *t)
+{
int mode = t->con.mode;
if ( (mode & (CON_AXIS0|CON_AXIS1)) == (CON_AXIS0|CON_AXIS1))
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 1c1725b20b9..4a7793b9e4a 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -122,7 +122,8 @@ static short constraints_list_needinv(TransInfo *t, ListBase *list);
/* ************************** Functions *************************** */
-static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, TransData *temp) {
+static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, TransData *temp)
+{
TransData *ihead = head;
TransData *itail = tail;
*temp = *head;
@@ -169,7 +170,8 @@ static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, Tra
}
}
-void sort_trans_data_dist(TransInfo *t) {
+void sort_trans_data_dist(TransInfo *t)
+{
TransData temp;
TransData *start = t->data;
int i = 1;
@@ -1334,7 +1336,8 @@ static void createTransMBallVerts(TransInfo *t)
/* ********************* curve/surface ********* */
-static void calc_distanceCurveVerts(TransData *head, TransData *tail) {
+static void calc_distanceCurveVerts(TransData *head, TransData *tail)
+{
TransData *td, *td_near = NULL;
for (td = head; td<=tail; td++) {
if (td->flag & TD_SELECTED) {
@@ -1379,7 +1382,8 @@ static void calc_distanceCurveVerts(TransData *head, TransData *tail) {
}
/* Utility function for getting the handle data from bezier's */
-static TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struct BezTriple *bezt) {
+static TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struct BezTriple *bezt)
+{
TransDataCurveHandleFlags *hdata;
td->flag |= TD_BEZTRIPLE;
hdata = td->hdata = MEM_mallocN(sizeof(TransDataCurveHandleFlags), "CuHandle Data");
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 174f8d00c00..0fa38e016ed 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -128,7 +128,8 @@ void BIF_createTransformOrientation(bContext *C, ReportList *reports, char *name
}
}
-TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports), char *name, int overwrite) {
+TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports), char *name, int overwrite)
+{
Base *base = CTX_data_active_base(C);
Object *ob;
float mat[3][3];
@@ -151,7 +152,8 @@ TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports)
return addMatrixSpace(C, mat, name, overwrite);
}
-TransformOrientation *createBoneSpace(bContext *C, ReportList *reports, char *name, int overwrite) {
+TransformOrientation *createBoneSpace(bContext *C, ReportList *reports, char *name, int overwrite)
+{
float mat[3][3];
float normal[3], plane[3];
@@ -170,7 +172,8 @@ TransformOrientation *createBoneSpace(bContext *C, ReportList *reports, char *na
return addMatrixSpace(C, mat, name, overwrite);
}
-TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, char *name, int overwrite) {
+TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, char *name, int overwrite)
+{
float mat[3][3];
float normal[3], plane[3];
int type;
@@ -268,7 +271,8 @@ int createSpaceNormalTangent(float mat[3][3], float normal[3], float tangent[3])
return 1;
}
-TransformOrientation* addMatrixSpace(bContext *C, float mat[3][3], char name[], int overwrite) {
+TransformOrientation* addMatrixSpace(bContext *C, float mat[3][3], char name[], int overwrite)
+{
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts = NULL;
@@ -295,7 +299,8 @@ TransformOrientation* addMatrixSpace(bContext *C, float mat[3][3], char name[],
return ts;
}
-void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target) {
+void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target)
+{
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts;
int i;
@@ -322,7 +327,8 @@ void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target) {
}
}
-void BIF_removeTransformOrientationIndex(bContext *C, int index) {
+void BIF_removeTransformOrientationIndex(bContext *C, int index)
+{
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts= BLI_findlink(transform_spaces, index);
@@ -345,7 +351,8 @@ void BIF_removeTransformOrientationIndex(bContext *C, int index) {
}
}
-void BIF_selectTransformOrientation(bContext *C, TransformOrientation *target) {
+void BIF_selectTransformOrientation(bContext *C, TransformOrientation *target)
+{
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
View3D *v3d = CTX_wm_view3d(C);
TransformOrientation *ts;
@@ -359,7 +366,8 @@ void BIF_selectTransformOrientation(bContext *C, TransformOrientation *target) {
}
}
-void BIF_selectTransformOrientationValue(bContext *C, int orientation) {
+void BIF_selectTransformOrientationValue(bContext *C, int orientation)
+{
View3D *v3d = CTX_wm_view3d(C);
if(v3d) /* currently using generic poll */
v3d->twmode = orientation;
@@ -408,7 +416,8 @@ EnumPropertyItem *BIF_enumTransformOrientation(bContext *C)
return item;
}
-const char * BIF_menustringTransformOrientation(const bContext *C, const char *title) {
+const char * BIF_menustringTransformOrientation(const bContext *C, const char *title)
+{
const char* menu = IFACE_("%t|Global%x0|Local%x1|Gimbal%x4|Normal%x2|View%x3");
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts;
@@ -430,7 +439,8 @@ const char * BIF_menustringTransformOrientation(const bContext *C, const char *t
return str_menu;
}
-int BIF_countTransformOrientation(const bContext *C) {
+int BIF_countTransformOrientation(const bContext *C)
+{
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts;
int count = 0;
@@ -442,7 +452,8 @@ int BIF_countTransformOrientation(const bContext *C) {
return count;
}
-void applyTransformOrientation(const bContext *C, float mat[3][3], char *name) {
+void applyTransformOrientation(const bContext *C, float mat[3][3], char *name)
+{
TransformOrientation *ts;
View3D *v3d = CTX_wm_view3d(C);
int selected_index = (v3d->twmode - V3D_MANIP_CUSTOM);
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index cc4b092a071..33796b7c215 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -647,11 +647,13 @@ static char *code_generate_vertex(ListBase *nodes)
return code;
}
-int GPU_bicubic_bump_support(void){
+int GPU_bicubic_bump_support(void)
+{
return GLEW_ARB_texture_gather && GLEW_ARB_texture_query_lod && GLEW_VERSION_3_0;
}
-void GPU_code_generate_glsl_lib(void){
+void GPU_code_generate_glsl_lib(void)
+{
DynStr *ds;
/* only initialize the library once */
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 8928774dcb4..45264fa862b 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -110,7 +110,8 @@
#endif
#endif
-int ismovie(const char *UNUSED(filepath)) {
+int ismovie(const char *UNUSED(filepath))
+{
return 0;
}
@@ -126,7 +127,8 @@ static void free_anim_movie(struct anim *UNUSED(anim)) { ; }
# define PATHSEPERATOR '/'
#endif
-static int an_stringdec(const char *string, char* head, char *tail, unsigned short *numlen) {
+static int an_stringdec(const char *string, char* head, char *tail, unsigned short *numlen)
+{
unsigned short len,nume,nums=0;
short i,found=FALSE;
@@ -161,11 +163,13 @@ static int an_stringdec(const char *string, char* head, char *tail, unsigned sho
}
-static void an_stringenc(char *string, const char *head, const char *tail, unsigned short numlen, int pic) {
+static void an_stringenc(char *string, const char *head, const char *tail, unsigned short numlen, int pic)
+{
BLI_stringenc(string, head, tail, numlen, pic);
}
-static void free_anim_avi (struct anim *anim) {
+static void free_anim_avi (struct anim *anim)
+{
#if defined(_WIN32) && !defined(FREE_WINDOWS)
int i;
#endif
@@ -206,7 +210,8 @@ static void free_anim_ffmpeg(struct anim * anim);
static void free_anim_redcode(struct anim * anim);
#endif
-void IMB_free_anim(struct anim * anim) {
+void IMB_free_anim(struct anim * anim)
+{
if (anim == NULL) {
printf("free anim, anim == NULL\n");
return;
@@ -229,14 +234,16 @@ void IMB_free_anim(struct anim * anim) {
MEM_freeN(anim);
}
-void IMB_close_anim(struct anim * anim) {
+void IMB_close_anim(struct anim * anim)
+{
if (anim == NULL) return;
IMB_free_anim(anim);
}
-struct anim * IMB_open_anim( const char * name, int ib_flags, int streamindex) {
+struct anim * IMB_open_anim( const char * name, int ib_flags, int streamindex)
+{
struct anim * anim;
anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct");
@@ -249,7 +256,8 @@ struct anim * IMB_open_anim( const char * name, int ib_flags, int streamindex) {
}
-static int startavi (struct anim *anim) {
+static int startavi (struct anim *anim)
+{
AviError avierror;
#if defined(_WIN32) && !defined(FREE_WINDOWS)
@@ -355,7 +363,8 @@ static int startavi (struct anim *anim) {
return 0;
}
-static ImBuf * avi_fetchibuf (struct anim *anim, int position) {
+static ImBuf * avi_fetchibuf (struct anim *anim, int position)
+{
ImBuf *ibuf = NULL;
int *tmp;
int y;
@@ -405,7 +414,8 @@ static ImBuf * avi_fetchibuf (struct anim *anim, int position) {
extern void do_init_ffmpeg(void);
-static int startffmpeg(struct anim * anim) {
+static int startffmpeg(struct anim * anim)
+{
int i, videoStream;
AVCodec *pCodec;
@@ -693,7 +703,6 @@ static void ffmpeg_postprocess(struct anim * anim)
int dstStride2[4] = { -dstStride[0], 0, 0, 0 };
uint8_t* dst2[4] = { dst[0] + (anim->y - 1)*dstStride[0],
0, 0, 0 };
- int i;
sws_scale(anim->img_convert_ctx,
(const uint8_t * const *)input->data,
@@ -1032,7 +1041,8 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position,
return anim->last_frame;
}
-static void free_anim_ffmpeg(struct anim * anim) {
+static void free_anim_ffmpeg(struct anim * anim)
+{
if (anim == NULL) return;
if (anim->pCodecCtx) {
@@ -1058,7 +1068,8 @@ static void free_anim_ffmpeg(struct anim * anim) {
#ifdef WITH_REDCODE
-static int startredcode(struct anim * anim) {
+static int startredcode(struct anim * anim)
+{
anim->redcodeCtx = redcode_open(anim->name);
if (!anim->redcodeCtx) {
return -1;
@@ -1068,7 +1079,8 @@ static int startredcode(struct anim * anim) {
return 0;
}
-static ImBuf * redcode_fetchibuf(struct anim * anim, int position) {
+static ImBuf * redcode_fetchibuf(struct anim * anim, int position)
+{
struct ImBuf * ibuf;
struct redcode_frame * frame;
struct redcode_frame_raw * raw_frame;
@@ -1099,7 +1111,8 @@ static ImBuf * redcode_fetchibuf(struct anim * anim, int position) {
return ibuf;
}
-static void free_anim_redcode(struct anim * anim) {
+static void free_anim_redcode(struct anim * anim)
+{
if (anim->redcodeCtx) {
redcode_close(anim->redcodeCtx);
anim->redcodeCtx = 0;
@@ -1113,7 +1126,8 @@ static void free_anim_redcode(struct anim * anim) {
/* Geen plaatje, probeer dan volgende animatie te openen */
/* gelukt, haal dan eerste plaatje van animatie */
-static struct ImBuf * anim_getnew(struct anim * anim) {
+static struct ImBuf * anim_getnew(struct anim * anim)
+{
struct ImBuf *ibuf = NULL;
if (anim == NULL) return(NULL);
@@ -1175,7 +1189,8 @@ static struct ImBuf * anim_getnew(struct anim * anim) {
return(ibuf);
}
-struct ImBuf * IMB_anim_previewframe(struct anim * anim) {
+struct ImBuf * IMB_anim_previewframe(struct anim * anim)
+{
struct ImBuf * ibuf = NULL;
int position = 0;
@@ -1282,7 +1297,8 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position,
/***/
-int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc) {
+int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc)
+{
struct anim_index * idx;
if (tc == IMB_TC_NONE) {
return anim->duration;
diff --git a/source/blender/imbuf/intern/bmp.c b/source/blender/imbuf/intern/bmp.c
index a9c2d72b188..77fc6bdf856 100644
--- a/source/blender/imbuf/intern/bmp.c
+++ b/source/blender/imbuf/intern/bmp.c
@@ -185,14 +185,16 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags)
}
/* Couple of helper functions for writing our data */
-static int putIntLSB(unsigned int ui,FILE *ofile) {
+static int putIntLSB(unsigned int ui,FILE *ofile)
+{
putc((ui>>0)&0xFF,ofile);
putc((ui>>8)&0xFF,ofile);
putc((ui>>16)&0xFF,ofile);
return putc((ui>>24)&0xFF,ofile);
}
-static int putShortLSB(unsigned short us,FILE *ofile) {
+static int putShortLSB(unsigned short us,FILE *ofile)
+{
putc((us>>0)&0xFF,ofile);
return putc((us>>8)&0xFF,ofile);
}
diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c
index 568dd7a9fb7..f8082c95f84 100644
--- a/source/blender/imbuf/intern/jp2.c
+++ b/source/blender/imbuf/intern/jp2.c
@@ -70,21 +70,24 @@ int imb_is_a_jp2(unsigned char *buf)
/**
sample error callback expecting a FILE* client object
*/
-static void error_callback(const char *msg, void *client_data) {
+static void error_callback(const char *msg, void *client_data)
+{
FILE *stream = (FILE*)client_data;
fprintf(stream, "[ERROR] %s", msg);
}
/**
sample warning callback expecting a FILE* client object
*/
-static void warning_callback(const char *msg, void *client_data) {
+static void warning_callback(const char *msg, void *client_data)
+{
FILE *stream = (FILE*)client_data;
fprintf(stream, "[WARNING] %s", msg);
}
/**
sample debug callback expecting no client object
*/
-static void info_callback(const char *msg, void *client_data) {
+static void info_callback(const char *msg, void *client_data)
+{
(void)client_data;
fprintf(stdout, "[INFO] %s", msg);
}
@@ -305,7 +308,8 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
#define COMP_48_CS 520833 /*Maximum size per color component for 2K @ 48fps*/
-static int initialise_4K_poc(opj_poc_t *POC, int numres){
+static int initialise_4K_poc(opj_poc_t *POC, int numres)
+{
POC[0].tile = 1;
POC[0].resno0 = 0;
POC[0].compno0 = 0;
@@ -323,7 +327,8 @@ static int initialise_4K_poc(opj_poc_t *POC, int numres){
return 2;
}
-static void cinema_parameters(opj_cparameters_t *parameters){
+static void cinema_parameters(opj_cparameters_t *parameters)
+{
parameters->tile_size_on = false;
parameters->cp_tdx=1;
parameters->cp_tdy=1;
@@ -356,7 +361,8 @@ static void cinema_parameters(opj_cparameters_t *parameters){
}
-static void cinema_setup_encoder(opj_cparameters_t *parameters,opj_image_t *image, img_fol_t *img_fol){
+static void cinema_setup_encoder(opj_cparameters_t *parameters,opj_image_t *image, img_fol_t *img_fol)
+{
int i;
float temp_rate;
@@ -442,8 +448,8 @@ static void cinema_setup_encoder(opj_cparameters_t *parameters,opj_image_t *imag
}
-static opj_image_t* ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters) {
-
+static opj_image_t* ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters)
+{
unsigned char *rect;
float *rect_float;
@@ -662,8 +668,8 @@ static opj_image_t* ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters) {
/* Found write info at http://users.ece.gatech.edu/~slabaugh/personal/c/bitmapUnix.c */
-int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags) {
-
+int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags)
+{
int quality = ibuf->ftype & 0xff;
int bSuccess;
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index 872b78743be..47dad378eb7 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -199,12 +199,14 @@ int IMB_ispic(const char *filename)
-static int isavi (const char *name) {
+static int isavi (const char *name)
+{
return AVI_is_avi (name);
}
#ifdef WITH_QUICKTIME
-static int isqtime (const char *name) {
+static int isqtime (const char *name)
+{
return anim_is_quicktime (name);
}
#endif
@@ -240,7 +242,8 @@ void do_init_ffmpeg(void)
}
}
-static int isffmpeg (const char *filename) {
+static int isffmpeg (const char *filename)
+{
AVFormatContext *pFormatCtx;
unsigned int i;
int videoStream;
@@ -323,7 +326,8 @@ static int isredcode(const char * filename)
#endif
-int imb_get_anim_type(const char * name) {
+int imb_get_anim_type(const char * name)
+{
int type;
struct stat st;
@@ -364,7 +368,8 @@ int imb_get_anim_type(const char * name) {
return(0);
}
-int IMB_isanim(const char *filename) {
+int IMB_isanim(const char *filename)
+{
int type;
if(U.uiflag & USER_FILTERFILEEXTS) {
diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h
index d8fabad824e..19082ea4689 100644
--- a/source/blender/makesrna/intern/rna_nodetree_types.h
+++ b/source/blender/makesrna/intern/rna_nodetree_types.h
@@ -40,6 +40,7 @@ DefNode( ShaderNode, SH_NODE_VALTORGB, def_colorramp, "VALTO
DefNode( ShaderNode, SH_NODE_RGBTOBW, 0, "RGBTOBW", RGBToBW, "RGB to BW", "" )
DefNode( ShaderNode, SH_NODE_TEXTURE, def_texture, "TEXTURE", Texture, "Texture", "" )
DefNode( ShaderNode, SH_NODE_NORMAL, 0, "NORMAL", Normal, "Normal", "" )
+DefNode( ShaderNode, SH_NODE_GAMMA, 0, "GAMMA", Gamma, "Gamma", "" )
DefNode( ShaderNode, SH_NODE_GEOMETRY, def_sh_geometry, "GEOMETRY", Geometry, "Geometry", "" )
DefNode( ShaderNode, SH_NODE_MAPPING, def_sh_mapping, "MAPPING", Mapping, "Mapping", "" )
DefNode( ShaderNode, SH_NODE_CURVE_VEC, def_vector_curve, "CURVE_VEC", VectorCurve, "Vector Curve", "" )
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 1b327edbc9f..a09aa7a52a3 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -113,6 +113,7 @@ set(SRC
shader/nodes/node_shader_common.c
shader/nodes/node_shader_curves.c
shader/nodes/node_shader_dynamic.c
+ shader/nodes/node_shader_gamma.c
shader/nodes/node_shader_geom.c
shader/nodes/node_shader_hueSatVal.c
shader/nodes/node_shader_invert.c
diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h
index ae255517733..2cabdd33971 100644
--- a/source/blender/nodes/NOD_shader.h
+++ b/source/blender/nodes/NOD_shader.h
@@ -54,6 +54,7 @@ void register_node_type_sh_valtorgb(struct bNodeTreeType *ttype);
void register_node_type_sh_rgbtobw(struct bNodeTreeType *ttype);
void register_node_type_sh_texture(struct bNodeTreeType *ttype);
void register_node_type_sh_normal(struct bNodeTreeType *ttype);
+void register_node_type_sh_gamma(struct bNodeTreeType *ttype);
void register_node_type_sh_geom(struct bNodeTreeType *ttype);
void register_node_type_sh_mapping(struct bNodeTreeType *ttype);
void register_node_type_sh_curve_vec(struct bNodeTreeType *ttype);
diff --git a/source/blender/nodes/shader/nodes/node_shader_gamma.c b/source/blender/nodes/shader/nodes/node_shader_gamma.c
new file mode 100644
index 00000000000..1d525d71698
--- /dev/null
+++ b/source/blender/nodes/shader/nodes/node_shader_gamma.c
@@ -0,0 +1,63 @@
+/*
+ * ***** BEGIN GPL 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.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+
+*/
+
+/** \file blender/nodes/composite/nodes/node_composite_gamma.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "node_shader_util.h"
+
+/* **************** Gamma Tools ******************** */
+
+static bNodeSocketTemplate sh_node_gamma_in[]= {
+ { SOCK_RGBA, 1, "Color", 1.0f, 1.0f, 1.0f, 1.0f},
+ { SOCK_FLOAT, 1, "Gamma", 1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 10.0f, PROP_UNSIGNED},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate sh_node_gamma_out[]= {
+ { SOCK_RGBA, 0, "Color"},
+ { -1, 0, "" }
+};
+
+void register_node_type_sh_gamma(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, SH_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR, NODE_OPTIONS);
+ node_type_compatibility(&ntype, NODE_NEW_SHADING);
+ node_type_socket_templates(&ntype, sh_node_gamma_in, sh_node_gamma_out);
+ node_type_size(&ntype, 140, 100, 320);
+ node_type_init(&ntype, NULL);
+ node_type_storage(&ntype, "", NULL, NULL);
+ node_type_exec(&ntype, NULL);
+ node_type_gpu(&ntype, NULL);
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c
index c5e0d2ab95d..d3b6e2e8b29 100644
--- a/source/blender/python/mathutils/mathutils_geometry.c
+++ b/source/blender/python/mathutils/mathutils_geometry.c
@@ -805,7 +805,8 @@ static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObj
PyDoc_STRVAR(M_Geometry_intersect_point_quad_2d_doc,
".. function:: intersect_point_quad_2d(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n"
"\n"
-" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n"
+" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, \n"
+" only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n"
"\n"
" :arg pt: Point\n"
" :type pt: :class:`mathutils.Vector`\n"
diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m
index c2e364b6080..75c7d890ddd 100644
--- a/source/blender/quicktime/apple/qtkit_export.m
+++ b/source/blender/quicktime/apple/qtkit_export.m
@@ -658,7 +658,7 @@ int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int rect
}
else {
//Error getting audio packets
- BKE_reportf(reports, RPT_ERROR, "Unable to get further audio packets from frame %i, error = 0x%x",qtexport->audioTotalExportedFrames,err);
+ BKE_reportf(reports, RPT_ERROR, "Unable to get further audio packets from frame %i, error = 0x%x",(int)qtexport->audioTotalExportedFrames,err);
break;
}
@@ -779,7 +779,7 @@ void free_qtcomponentdata(void) {
void quicktime_verify_image_type(RenderData *rd)
{
- if (rd->imtype == R_IMF_IMTYPE_QUICKTIME) {
+ if (rd->im_format.imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType<= 0) ||
(rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index 18c1ed23f8a..937e1b6be46 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -689,7 +689,7 @@ static void check_renderbutton_framerate(RenderData *rd, ReportList *reports)
void quicktime_verify_image_type(RenderData *rd)
{
- if (rd->imtype == R_IMF_IMTYPE_QUICKTIME) {
+ if (rd->im_format.imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType== 0) ||
(rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index d9822d131eb..29871c2b3cd 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -1950,7 +1950,15 @@ void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene* startscene, Main *
initVideoTexture();
/* could be done a lot more nicely, but for now a quick way to get bge.* working */
- PyRun_SimpleString("sys = __import__('sys');mod = sys.modules['bge'] = type(sys)('bge');mod.__dict__.update({'logic':__import__('GameLogic'), 'render':__import__('Rasterizer'), 'events':__import__('GameKeys'), 'constraints':__import__('PhysicsConstraints'), 'types':__import__('GameTypes'), 'texture':__import__('VideoTexture')});");
+ PyRun_SimpleString("sys = __import__('sys');"
+ "mod = sys.modules['bge'] = type(sys)('bge');"
+ "mod.__dict__.update({'logic':__import__('GameLogic'), "
+ "'render':__import__('Rasterizer'), "
+ "'events':__import__('GameKeys'), "
+ "'constraints':__import__('PhysicsConstraints'), "
+ "'types':__import__('GameTypes'), "
+ "'texture':__import__('VideoTexture')});"
+ );
}
static struct PyModuleDef Rasterizer_module_def = {