[Bf-blender-cvs] [f707ffd] temp_viewport_fx_merge: Even more missing stuffs
Antony Riakiotakis
noreply at git.blender.org
Wed Mar 18 22:08:07 CET 2015
Commit: f707ffdd3abddcf6ed5f8bf165bf5703d94d3d9a
Author: Antony Riakiotakis
Date: Wed Mar 18 22:08:02 2015 +0100
Branches: temp_viewport_fx_merge
https://developer.blender.org/rBf707ffdd3abddcf6ed5f8bf165bf5703d94d3d9a
Even more missing stuffs
===================================================================
M source/blender/gpu/CMakeLists.txt
A source/blender/gpu/GPU_lighting.h
M source/blender/gpu/intern/gpu_lighting.c
A source/blender/gpu/intern/gpu_lighting.cpp
M source/blender/gpu/intern/gpu_matrix.c
===================================================================
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index d5be4f3..2a43942 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -58,6 +58,7 @@ set(SRC
intern/gpu_font.c
intern/gpu_immediate.c
intern/gpu_init_exit.c
+ intern/gpu_lighting.c
intern/gpu_material.c
intern/gpu_matrix.c
intern/gpu_pixels.c
diff --git a/source/blender/gpu/GPU_lighting.h b/source/blender/gpu/GPU_lighting.h
new file mode 100644
index 0000000..3e3e691
--- /dev/null
+++ b/source/blender/gpu/GPU_lighting.h
@@ -0,0 +1,77 @@
+#ifndef _GPU_LIGHTING_H_
+#define _GPU_LIGHTING_H_
+
+/*
+ * ***** 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) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jason Wilkins
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file source/blender/gpu/GPU_lighting.h
+ * \ingroup gpu
+ */
+
+#include "BLI_sys_types.h" /* for bool */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct GPUbasiclight {
+ float position[4];
+ float diffuse [4];
+ float specular[4];
+
+ float constant_attenuation;
+ float linear_attenuation;
+ float quadratic_attenuation;
+
+ float spot_direction[3];
+ float spot_cutoff;
+ float spot_exponent;
+} GPUbasiclight;
+
+void GPU_set_basic_material_shininess(int shininess);
+void GPU_set_basic_material_specular(const float specular[4]);
+
+/* Set lights and also applies appropriate transformations on
+ the positions and spot directions */
+void GPU_set_basic_lights(int light_count, const GPUbasiclight lights[]);
+
+int GPU_get_basic_lights(GPUbasiclight lights_out[]); /* Lights out! Get it? :-) */
+
+/* Set lights without transforming position or spot_direction.
+ Suitable for restoring a backup copy of previous light state.
+ Keeps position and spot position from getting transformed twice. */
+void GPU_restore_basic_lights(int light_count, const GPUbasiclight lights[]);
+
+/* A white directional light shining straight down with no attenuation or spot effects.
+ Same as the default legacy OpenGL light #0. */
+extern const GPUbasiclight GPU_DEFAULT_LIGHT;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GPU_LIGHTING_H_ */
\ No newline at end of file
diff --git a/source/blender/gpu/intern/gpu_lighting.c b/source/blender/gpu/intern/gpu_lighting.c
index 113d4f1..0f0a72f 100644
--- a/source/blender/gpu/intern/gpu_lighting.c
+++ b/source/blender/gpu/intern/gpu_lighting.c
@@ -33,17 +33,15 @@
#define GPU_MANGLE_DEPRECATED 0 /* Allow use of deprecated OpenGL functions in this file */
#endif
-/* my interface */
+#include "BLI_sys_types.h"
+
#include "intern/gpu_private.h"
-/* my library */
#include "GPU_extensions.h"
#include "GPU_matrix.h"
-#include "GPU_safety.h"
+#include "GPU_debug.h"
#include "GPU_common.h"
-
-/* internal */
-#include "intern/gpu_common_intern.h"
+#include "GPU_lighting.h"
/* external */
#include "BLI_math_vector.h"
@@ -164,19 +162,19 @@ void gpu_commit_material(void)
const struct GPUcommon* common = gpu_get_common();
const struct GPUbasicmaterial* material = &(LIGHTING.material);
-GPU_CHECK_NO_ERROR();
+GPU_ASSERT_NO_GL_ERRORS("");
if (common) {
glUniform4fv(common->material_specular, 1, material->specular);
-GPU_CHECK_NO_ERROR();
+GPU_ASSERT_NO_GL_ERRORS("");
glUniform1f (common->material_shininess, (float)(material->shininess));
-GPU_CHECK_NO_ERROR();
+GPU_ASSERT_NO_GL_ERRORS("");
}
#if defined(WITH_GL_PROFILE_COMPAT)
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material->specular); // deprecated
glMateriali (GL_FRONT_AND_BACK, GL_SHININESS, material->shininess); // deprecated
#endif
-GPU_CHECK_NO_ERROR();
+GPU_ASSERT_NO_GL_ERRORS("");
}
@@ -203,8 +201,8 @@ void GPU_set_basic_material_specular(const float specular[4])
void GPU_restore_basic_lights(int light_count, const GPUbasiclight lights[])
{
- GPU_ASSERT(light_count >= 0);
- GPU_ASSERT(light_count < GPU_MAX_COMMON_LIGHTS);
+ BLI_assert(light_count >= 0);
+ BLI_assert(light_count < GPU_MAX_COMMON_LIGHTS);
memcpy(LIGHTING.light, lights, light_count*sizeof(GPUbasiclight));
diff --git a/source/blender/gpu/intern/gpu_lighting.c b/source/blender/gpu/intern/gpu_lighting.cpp
similarity index 99%
copy from source/blender/gpu/intern/gpu_lighting.c
copy to source/blender/gpu/intern/gpu_lighting.cpp
index 113d4f1..ae86c2a 100644
--- a/source/blender/gpu/intern/gpu_lighting.c
+++ b/source/blender/gpu/intern/gpu_lighting.cpp
@@ -34,7 +34,7 @@
#endif
/* my interface */
-#include "intern/gpu_private.h"
+#include "intern/gpu_lighting_intern.h"
/* my library */
#include "GPU_extensions.h"
diff --git a/source/blender/gpu/intern/gpu_matrix.c b/source/blender/gpu/intern/gpu_matrix.c
index 8856854..959da9f 100644
--- a/source/blender/gpu/intern/gpu_matrix.c
+++ b/source/blender/gpu/intern/gpu_matrix.c
@@ -82,9 +82,9 @@ static void checkmat(GLfloat *m)
for(i = 0; i < 16; i++) {
#if _MSC_VER
- GPU_ASSERT(_finite(m[i]));
+ BLI_assert(_finite(m[i]));
#else
- GPU_ASSERT(!isinf(m[i]));
+ BLI_assert(!isinf(m[i]));
#endif
}
}
More information about the Bf-blender-cvs
mailing list