├── ThirdParty ├── glew │ ├── version_2.1.0.txt │ ├── build │ │ ├── glew.rc │ │ └── cmake │ │ │ ├── testbuild │ │ │ ├── main.c │ │ │ └── CMakeLists.txt │ │ │ ├── cmake_uninstall.cmake.in │ │ │ └── glew-config.cmake │ ├── config │ │ ├── Makefile.linux-egl │ │ ├── Makefile.linux-osmesa │ │ ├── Makefile.linux-clang-egl │ │ ├── Makefile.msys-win64 │ │ ├── Makefile.mingw-win32 │ │ ├── Makefile.msys-win32 │ │ ├── version │ │ ├── Makefile.solaris │ │ ├── Makefile.fedora-mingw32 │ │ ├── Makefile.haiku │ │ ├── Makefile.solaris-gcc │ │ ├── Makefile.irix │ │ ├── Makefile.gnu │ │ ├── Makefile.kfreebsd │ │ ├── Makefile.freebsd │ │ ├── Makefile.openbsd │ │ ├── Makefile.netbsd │ │ ├── Makefile.cygwin │ │ ├── Makefile.mingw │ │ ├── Makefile.msys │ │ ├── Makefile.linux-mingw32 │ │ ├── Makefile.linux-mingw64 │ │ ├── Makefile.cygming │ │ ├── Makefile.linux-mingw-w64 │ │ ├── Makefile.nacl-32 │ │ ├── Makefile.nacl-64 │ │ ├── Makefile.darwin │ │ ├── Makefile.linux │ │ ├── Makefile.darwin-x86_64 │ │ ├── Makefile.linux-clang │ │ ├── Makefile.darwin-ppc │ │ ├── Makefile.darwin-gcc6 │ │ └── Makefile.darwin-universal │ ├── glew.pc.in │ └── glew.pc ├── glm │ ├── gtx │ │ ├── type_trait.inl │ │ ├── raw_data.inl │ │ ├── type_aligned.inl │ │ ├── std_based_type.inl │ │ ├── number_precision.inl │ │ ├── projection.inl │ │ ├── perpendicular.inl │ │ ├── mixed_product.inl │ │ ├── normal.inl │ │ ├── float_notmalize.inl │ │ ├── optimum_pow.inl │ │ ├── log_base.inl │ │ ├── normalize_dot.inl │ │ ├── transform.inl │ │ ├── handed_coordinate_space.inl │ │ ├── orthonormalize.inl │ │ ├── scalar_relational.hpp │ │ ├── matrix_cross_product.inl │ │ ├── projection.hpp │ │ ├── polar_coordinates.inl │ │ ├── mixed_product.hpp │ │ ├── extend.hpp │ │ ├── normal.hpp │ │ ├── perpendicular.hpp │ │ ├── gradient_paint.inl │ │ ├── extend.inl │ │ ├── log_base.hpp │ │ ├── raw_data.hpp │ │ ├── matrix_cross_product.hpp │ │ ├── orthonormalize.hpp │ │ ├── polar_coordinates.hpp │ │ ├── closest_point.hpp │ │ ├── optimum_pow.hpp │ │ ├── closest_point.inl │ │ ├── matrix_decompose.hpp │ │ ├── string_cast.hpp │ │ ├── wrap.hpp │ │ ├── gradient_paint.hpp │ │ ├── scalar_relational.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── normalize_dot.hpp │ │ ├── spline.hpp │ │ ├── transform.hpp │ │ ├── matrix_transform_2d.inl │ │ ├── vector_angle.inl │ │ ├── compatibility.inl │ │ ├── vector_angle.hpp │ │ ├── color_space_YCoCg.hpp │ │ ├── rotate_normalized_axis.inl │ │ ├── color_space.hpp │ │ ├── matrix_interpolation.hpp │ │ ├── std_based_type.hpp │ │ ├── wrap.inl │ │ ├── common.hpp │ │ ├── range.hpp │ │ ├── spline.inl │ │ ├── scalar_multiplication.hpp │ │ ├── integer.hpp │ │ ├── number_precision.hpp │ │ ├── rotate_normalized_axis.hpp │ │ ├── vector_query.hpp │ │ ├── component_wise.hpp │ │ ├── fast_trigonometry.hpp │ │ └── norm.hpp │ ├── detail │ │ ├── func_trigonometric_simd.inl │ │ ├── type_vec.inl │ │ ├── type_mat.inl │ │ ├── type_mat4x4_simd.inl │ │ ├── func_packing_simd.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── type_half.hpp │ │ ├── _fixes.hpp │ │ ├── func_exponential_simd.inl │ │ ├── precision.hpp │ │ └── func_integer_simd.inl │ ├── gtc │ │ ├── vec1.inl │ │ ├── type_precision.inl │ │ ├── functions.inl │ │ ├── functions.hpp │ │ ├── matrix_access.inl │ │ ├── matrix_access.hpp │ │ ├── matrix_inverse.hpp │ │ ├── noise.hpp │ │ ├── ulp.hpp │ │ ├── epsilon.hpp │ │ └── color_space.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ ├── common.hpp │ ├── matrix.hpp │ ├── integer.hpp │ ├── packing.hpp │ ├── geometric.hpp │ ├── exponential.hpp │ ├── trigonometric.hpp │ ├── vector_relational.hpp │ ├── simd │ │ ├── packing.h │ │ ├── vector_relational.h │ │ ├── trigonometric.h │ │ └── exponential.h │ ├── mat3x2.hpp │ ├── mat2x4.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ └── mat2x3.hpp └── glfw │ ├── version_84077401e96e243ffd29939475951ee95c4505a6.txt │ ├── src │ ├── glfw3Config.cmake.in │ ├── glfw3.pc.in │ ├── xkb_unicode.h │ ├── null_joystick.h │ ├── posix_time.h │ ├── null_joystick.c │ ├── posix_thread.h │ ├── null_init.c │ ├── cocoa_joystick.h │ ├── nsgl_context.h │ ├── win32_joystick.h │ ├── cocoa_time.c │ ├── null_monitor.c │ ├── linux_joystick.h │ └── null_platform.h │ └── LICENSE.md ├── .gitignore ├── doc ├── ScreenShot.png └── ScreenShot_FishEditor.jpg ├── resources └── fonts │ ├── entypo.ttf │ ├── icomoon.ttf │ ├── Roboto-Bold.ttf │ ├── Roboto-Regular.ttf │ └── NotoEmoji-Regular.ttf ├── include └── FishGUI │ ├── Utils.hpp │ ├── Render │ └── FrameBuffer.hpp │ ├── GLEnvironment.hpp │ ├── Icon.hpp │ ├── Shader.hpp │ ├── Math.hpp │ └── FishGUI.hpp ├── examples ├── common │ ├── UnityToolBar.hpp │ ├── HierarchyView.cpp │ ├── SceneViewWidget.hpp │ ├── HierarchyView.hpp │ ├── DirTreeWidget.hpp │ ├── UnityLayout.hpp │ └── FileNode.hpp └── CMakeLists.txt ├── README.md ├── cmake └── MacOSXBundleInfo.plist.in └── src ├── Input.cpp └── Utils.cpp /ThirdParty/glew/version_2.1.0.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ThirdParty/glfw/version_84077401e96e243ffd29939475951ee95c4505a6.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /build2 3 | /bin 4 | /temp/ 5 | /ThirdParty/glew/glew.pc 6 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /doc/ScreenShot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/doc/ScreenShot.png -------------------------------------------------------------------------------- /ThirdParty/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /ThirdParty/glfw/src/glfw3Config.cmake.in: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake") 2 | -------------------------------------------------------------------------------- /resources/fonts/entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/resources/fonts/entypo.ttf -------------------------------------------------------------------------------- /resources/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/resources/fonts/icomoon.ttf -------------------------------------------------------------------------------- /ThirdParty/glew/build/glew.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/ThirdParty/glew/build/glew.rc -------------------------------------------------------------------------------- /doc/ScreenShot_FishEditor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/doc/ScreenShot_FishEditor.jpg -------------------------------------------------------------------------------- /resources/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/resources/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /resources/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/resources/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /resources/fonts/NotoEmoji-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yushroom/FishGUI/HEAD/resources/fonts/NotoEmoji-Regular.ttf -------------------------------------------------------------------------------- /ThirdParty/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec2.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec3.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec4.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/common.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_common.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ThirdParty/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/matrix.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_matrix.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-egl: -------------------------------------------------------------------------------- 1 | include config/Makefile.linux 2 | 3 | LDFLAGS.GL = -lEGL -lGL 4 | CFLAGS.EXTRA += -DGLEW_EGL 5 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-osmesa: -------------------------------------------------------------------------------- 1 | include config/Makefile.linux 2 | 3 | LDFLAGS.GL = -lOSMesa 4 | CFLAGS.EXTRA += -DGLEW_OSMESA 5 | -------------------------------------------------------------------------------- /ThirdParty/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/integer.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_integer.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/packing.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_packing.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/geometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_geometric.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-clang-egl: -------------------------------------------------------------------------------- 1 | include config/Makefile.linux-clang 2 | 3 | LDFLAGS.GL = -lEGL -lGL 4 | CFLAGS.EXTRA += -DGLEW_EGL 5 | -------------------------------------------------------------------------------- /ThirdParty/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/exponential.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_exponential.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /ThirdParty/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/trigonometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_trigonometric.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.msys-win64: -------------------------------------------------------------------------------- 1 | include config/Makefile.msys 2 | 3 | POPT := -mtune=generic -O2 4 | CFLAGS.EXTRA += -m64 5 | LDFLAGS.EXTRA += -m64 6 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /ThirdParty/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vector_relational.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_vector_relational.hpp" 7 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.mingw-win32: -------------------------------------------------------------------------------- 1 | include config/Makefile.mingw 2 | 3 | POPT := -march=i686 -mtune=generic -O2 4 | CFLAGS.EXTRA += -m32 5 | LDFLAGS.EXTRA += -m32 6 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.msys-win32: -------------------------------------------------------------------------------- 1 | include config/Makefile.msys 2 | 3 | POPT := -march=i686 -mtune=generic -O2 4 | CFLAGS.EXTRA += -m32 5 | LDFLAGS.EXTRA += -m32 6 | -------------------------------------------------------------------------------- /ThirdParty/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /ThirdParty/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /ThirdParty/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/version: -------------------------------------------------------------------------------- 1 | GLEW_MAJOR = 2 2 | GLEW_MINOR = 1 3 | GLEW_MICRO = 0 4 | GLEW_VERSION = $(GLEW_MAJOR).$(GLEW_MINOR).$(GLEW_MICRO) 5 | GLEW_NAME = GLEW 6 | SO_MAJOR = $(GLEW_MAJOR).$(GLEW_MINOR) 7 | SO_VERSION = $(GLEW_VERSION) 8 | -------------------------------------------------------------------------------- /ThirdParty/glew/glew.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=${prefix} 3 | libdir=@libdir@ 4 | includedir=${prefix}/include 5 | 6 | Name: glew 7 | Description: The OpenGL Extension Wrangler library 8 | Version: @version@ 9 | Cflags: -I${includedir} @cflags@ 10 | Libs: -L${libdir} -l@libname@ 11 | Requires: @requireslib@ 12 | -------------------------------------------------------------------------------- /ThirdParty/glew/glew.pc: -------------------------------------------------------------------------------- 1 | prefix=C:/Program Files/FishGUI 2 | exec_prefix=${prefix} 3 | libdir=C:/Program Files/FishGUI/lib 4 | includedir=${prefix}/include 5 | 6 | Name: glew 7 | Description: The OpenGL Extension Wrangler library 8 | Version: 2.1.0 9 | Cflags: -I${includedir} 10 | Libs: -L${libdir} -lglew32 11 | Requires: glu 12 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType perp 8 | ( 9 | vecType const & x, 10 | vecType const & Normal 11 | ) 12 | { 13 | return x - proj(x, Normal); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | tvec3 const & v1, 10 | tvec3 const & v2, 11 | tvec3 const & v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 8 | ( 9 | tvec3 const & p1, 10 | tvec3 const & p2, 11 | tvec3 const & p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const & value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.solaris: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = ld 4 | CFLAGS.EXTRA = -I/usr/openwin/include -Kpic 5 | LDFLAGS.SO = -G 6 | LDFLAGS.EXTRA = -L/usr/openwin/lib 7 | LDFLAGS.GL = -lGL -lX11 8 | NAME = GLEW 9 | BIN.SUFFIX = 10 | POPT = -xO2 11 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 12 | LIB.DEVLNK = lib$(NAME).so 13 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 14 | LIB.STATIC = lib$(NAME).a 15 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.fedora-mingw32: -------------------------------------------------------------------------------- 1 | # For cross-compiling from Linux to Windows x86 using mingw32 2 | # http://www.mingw.org/ 3 | # 4 | # $ make SYSTEM=fedora-mingw32 5 | 6 | include config/Makefile.linux-mingw32 7 | 8 | CC := i686-pc-mingw32-gcc 9 | LD := i686-pc-mingw32-ld 10 | LDFLAGS.GL += -L/usr/i686-pc-mingw32/sys-root/mingw/lib 11 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 12 | LDFLAGS.EXTRA += -nostdlib 13 | -------------------------------------------------------------------------------- /ThirdParty/glfw/src/glfw3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | includedir=${prefix}/include 4 | libdir=${exec_prefix}/lib@LIB_SUFFIX@ 5 | 6 | Name: GLFW 7 | Description: A multi-platform library for OpenGL, window and input 8 | Version: @GLFW_VERSION_FULL@ 9 | URL: http://www.glfw.org/ 10 | Requires.private: @GLFW_PKG_DEPS@ 11 | Libs: -L${libdir} -l@GLFW_LIB_NAME@ 12 | Libs.private: @GLFW_PKG_LIBS@ 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template class vecType> 9 | GLM_FUNC_QUALIFIER vecType floatNormalize(vecType const & v) 10 | { 11 | return vecType(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.haiku: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = cc 4 | 5 | LDFLAGS.GL = -lGL 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | 9 | NAME = GLEW 10 | WARN = -Wall -W 11 | POPT = -O2 12 | 13 | BIN.SUFFIX = 14 | 15 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 16 | LIB.DEVLNK = lib$(NAME).so 17 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 18 | LIB.STATIC = lib$(NAME).a 19 | LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 20 | 21 | -------------------------------------------------------------------------------- /ThirdParty/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.solaris-gcc: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = gcc 3 | LD = ld 4 | CFLAGS.EXTRA = -I/usr/openwin/include -fPIC 5 | LDFLAGS.SO = -G 6 | LDFLAGS.EXTRA = -L/usr/openwin/lib 7 | LDFLAGS.GL = -lGL -lX11 8 | NAME = GLEW 9 | BIN.SUFFIX = 10 | POPT = -O2 11 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 12 | LIB.DEVLNK = lib$(NAME).so 13 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 14 | LIB.STATIC = lib$(NAME).a 15 | LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 16 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.irix: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = ld 4 | ABI = -64# -n32 5 | CC += $(ABI) 6 | LD += $(ABI) 7 | LDFLAGS.EXTRA = 8 | LDFLAGS.GL = -lGL -lXext -lX11 9 | NAME = GLEW 10 | WARN = -fullwarn -woff 1110,1498 11 | POPT = -O2 -OPT:Olimit=0 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.gnu: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = cc 4 | LDFLAGS.EXTRA = -L/usr/X11R6/lib 5 | LDFLAGS.GL = -lGL -lX11 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | NAME = GLEW 9 | WARN = -Wall -W 10 | POPT = -O2 11 | CFLAGS.EXTRA += -fPIC 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.kfreebsd: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = cc 4 | LDFLAGS.EXTRA = -L/usr/X11R6/lib 5 | LDFLAGS.GL = -lGL -lX11 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | NAME = GLEW 9 | WARN = -Wall -W 10 | POPT = -O2 11 | CFLAGS.EXTRA += -fPIC 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.freebsd: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = ld 4 | LDFLAGS.EXTRA = -L/usr/X11R6/lib 5 | LDFLAGS.GL = -lGL -lX11 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | CFLAGS.EXTRA += -I/usr/X11R6/include -fPIC 9 | NAME = GLEW 10 | WARN = -Wall -W 11 | POPT = -O2 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.openbsd: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = ld 4 | LDFLAGS.EXTRA = -L/usr/X11R6/lib 5 | LDFLAGS.GL = -lGLU -lGL -lX11 -lm 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | CFLAGS.EXTRA += -I/usr/X11R6/include 9 | NAME = GLEW 10 | WARN = -Wall -W 11 | POPT = -O2 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.netbsd: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = ld 4 | LDFLAGS.EXTRA = -L/usr/X11R7/lib -R /usr/X11R7/lib 5 | LDFLAGS.GL = -lGL -lX11 6 | LDFLAGS.STATIC = -Wl,-Bstatic 7 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 8 | CFLAGS.EXTRA += -I/usr/X11R7/include -fPIC 9 | NAME = GLEW 10 | WARN = -Wall -W 11 | POPT = -O2 12 | BIN.SUFFIX = 13 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 14 | LIB.DEVLNK = lib$(NAME).so 15 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 16 | LIB.STATIC = lib$(NAME).a 17 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) 18 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 8 | { 9 | assert(x != genType(0)); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template class vecType> 14 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.cygwin: -------------------------------------------------------------------------------- 1 | NAME = GLEW 2 | GLEW_DEST ?= /usr 3 | # use gcc for linking, with ld it does not work 4 | CC := cc 5 | LD := cc 6 | LN := 7 | LDFLAGS.EXTRA = 8 | LIBDIR = $(GLEW_DEST)/lib 9 | LDFLAGS.GL = -lGL -lX11 10 | LDFLAGS.STATIC = -Wl,-Bstatic 11 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 12 | WARN = -Wall -W 13 | POPT = -O2 14 | BIN.SUFFIX = .exe 15 | LIB.SONAME = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll 16 | LIB.DEVLNK = lib$(NAME).dll.a 17 | LIB.SHARED = cyg$(NAME)-$(GLEW_MAJOR)-$(GLEW_MINOR).dll 18 | LIB.STATIC = lib$(NAME).a 19 | LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) 20 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.mingw: -------------------------------------------------------------------------------- 1 | NAME = glew32 2 | # use gcc for linking, with ld it does not work 3 | CC := gcc -fno-builtin 4 | LD := gcc 5 | LN := 6 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 7 | LDFLAGS.EXTRA = -L/mingw/lib 8 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 9 | LDFLAGS.EXTRA += -nostdlib 10 | WARN = -Wall -W 11 | POPT = -O2 12 | BIN.SUFFIX = .exe 13 | LIB.SONAME = lib$(NAME).dll 14 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 15 | LIB.SHARED = $(NAME).dll 16 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 17 | LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) 18 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template class vecType> 7 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template class vecType> 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.msys: -------------------------------------------------------------------------------- 1 | NAME = glew32 2 | # use gcc for linking, with ld it does not work 3 | CC := gcc 4 | LD := gcc 5 | LN := 6 | CFLAGS.EXTRA += -D_WIN32 7 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 8 | LDFLAGS.EXTRA = 9 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 10 | LDFLAGS.EXTRA += -nostdlib 11 | LIBDIR = $(GLEW_DEST)/bin 12 | WARN = -Wall -W 13 | POPT = -O2 14 | BIN.SUFFIX = .exe 15 | LIB.SONAME = lib$(NAME).dll 16 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 17 | LIB.SHARED = $(NAME).dll 18 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 19 | LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) 20 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat4x4 translate(tvec3 const & v) 8 | { 9 | return translate(tmat4x4(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER tmat4x4 rotate(T angle, tvec3 const & v) 14 | { 15 | return rotate(tmat4x4(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER tmat4x4 scale(tvec3 const & v) 20 | { 21 | return scale(tmat4x4(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | tvec3 const & tangent, 10 | tvec3 const & binormal, 11 | tvec3 const & normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | tvec3 const & tangent, 21 | tvec3 const & binormal, 22 | tvec3 const & normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /ThirdParty/glew/build/cmake/testbuild/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | 6 | #define S(x) SS(x) 7 | #define SS(x) #x 8 | 9 | int main(int argc, char* argv[]) { 10 | printf("GLEW CMake test, %s build\n", 11 | S(GLEW_CMAKE_TEST_CONFIG)); 12 | printf("-- linked to %s which is %s\n", 13 | S(GLEW_CMAKE_TEST_TARGET_FILE_NAME), 14 | S(GLEW_CMAKE_TEST_TARGET_TYPE)); 15 | const GLubyte* v = glewGetString(GLEW_VERSION); 16 | if(v) { 17 | printf("-- glewGetString(GLEW_VERSION) returns %s\n-- test passed.\n", v); 18 | return EXIT_SUCCESS; 19 | } else { 20 | printf("-- glewGetString(GLEW_VERSION) returns NULL\n-- test failed.\n"); 21 | return EXIT_FAILURE; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) 8 | { 9 | tmat3x3 r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-mingw32: -------------------------------------------------------------------------------- 1 | # For cross-compiling from Linux to Windows x86 using mingw32 2 | # http://www.mingw.org/ 3 | # 4 | # $ make SYSTEM=linux-mingw32 5 | 6 | NAME := glew32 7 | HOST := i586-mingw32msvc 8 | CC := $(HOST)-gcc 9 | LD := $(HOST)-ld 10 | LN := 11 | STRIP := 12 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 13 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 14 | #LDFLAGS.EXTRA += -nostdlib 15 | WARN = -Wall -W 16 | POPT = -O2 17 | BIN.SUFFIX = .exe 18 | LIB.SONAME = lib$(NAME).dll 19 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 20 | LIB.SHARED = $(NAME).dll 21 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 22 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) 23 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-mingw64: -------------------------------------------------------------------------------- 1 | # For cross-compiling from Linux to Windows amd64 using mingw32 2 | # http://www.mingw.org/ 3 | # 4 | # $ make SYSTEM=linux-mingw64 5 | 6 | NAME := glew32 7 | HOST := i686-w64-mingw32 8 | CC := $(HOST)-gcc 9 | LD := $(HOST)-ld 10 | LN := 11 | STRIP := 12 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 13 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 14 | #LDFLAGS.EXTRA += -nostdlib 15 | WARN = -Wall -W 16 | POPT = -O2 17 | BIN.SUFFIX = .exe 18 | LIB.SONAME = lib$(NAME).dll 19 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 20 | LIB.SHARED = $(NAME).dll 21 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 22 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) 23 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.cygming: -------------------------------------------------------------------------------- 1 | NAME = glew32 2 | GLEW_DEST = /usr 3 | BINDIR = /usr/bin 4 | LIBDIR = /usr/lib/mingw 5 | INCDIR = /usr/include/mingw/GL 6 | # use gcc for linking, with ld it does not work 7 | CC := gcc -mno-cygwin 8 | LD := gcc -mno-cygwin 9 | LN := 10 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 11 | LDFLAGS.EXTRA = -L$(LIBDIR) 12 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 13 | LDFLAGS.EXTRA += -nostdlib 14 | WARN = -Wall -W 15 | POPT = -O2 16 | BIN.SUFFIX = .exe 17 | LIB.SONAME = lib$(NAME).dll 18 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 19 | LIB.SHARED = $(NAME).dll 20 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 21 | LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) 22 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-mingw-w64: -------------------------------------------------------------------------------- 1 | # For cross-compiling from Linux to Windows x86 using mingw-w64 2 | # http://mingw-w64.sourceforge.net/ 3 | # 4 | # $ make SYSTEM=linux-mingw-w64 5 | # 6 | 7 | NAME := glew32 8 | CC := i686-w64-mingw32-gcc 9 | LD := i686-w64-mingw32-ld 10 | LN := 11 | STRIP := 12 | LDFLAGS.GL = -lopengl32 -lgdi32 -luser32 -lkernel32 13 | CFLAGS.EXTRA += -fno-builtin -fno-stack-protector 14 | LDFLAGS.EXTRA += -nostdlib 15 | WARN = -Wall -W 16 | POPT = -O2 17 | BIN.SUFFIX = .exe 18 | LIB.SONAME = lib$(NAME).dll 19 | LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib 20 | LIB.SHARED = $(NAME).dll 21 | LIB.STATIC = lib$(NAME).a # the static lib will be broken 22 | LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) 23 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.nacl-32: -------------------------------------------------------------------------------- 1 | NAME = $(REGAL_NAME) 2 | 3 | M_PREFIX = i686 4 | M_NAME ?= $(shell uname -s) 5 | ifeq (Linux,${M_NAME}) 6 | M_PREFIX = i686 7 | endif 8 | 9 | CC = $(M_PREFIX)-nacl-gcc 10 | CXX = $(M_PREFIX)-nacl-g++ 11 | LD = $(M_PREFIX)-nacl-ld 12 | STRIP ?= 13 | EXT.DYNAMIC = so 14 | LDFLAGS.EXTRA = 15 | LIBDIR = 16 | CFLAGS.EXTRA += -fPIC 17 | CFLAGS.EXTRA += -m32 18 | LDFLAGS.EXTRA += -melf_nacl 19 | LDFLAGS.GL = 20 | LDFLAGS.GLU = -lRegalGLU 21 | LDFLAGS.GLUT = -lRegalGLUT 22 | LDFLAGS.STATIC = 23 | LDFLAGS.DYNAMIC = -shared 24 | WARN = -Wall -W -Wno-unused-parameter 25 | POPT = -O2 26 | BIN.SUFFIX = 27 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 28 | LIB.DEVLNK = lib$(NAME).so 29 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 30 | LIB.STATIC = lib$(NAME).a 31 | LDFLAGS.SO = $(LDFLAGS.DYNAMIC) -soname=$(LIB.SONAME) 32 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.nacl-64: -------------------------------------------------------------------------------- 1 | NAME = $(REGAL_NAME) 2 | 3 | M_PREFIX = i686 4 | M_NAME ?= $(shell uname -s) 5 | ifeq (Linux,${M_NAME}) 6 | M_PREFIX = i686 7 | endif 8 | 9 | CC = $(M_PREFIX)-nacl-gcc 10 | CXX = $(M_PREFIX)-nacl-g++ 11 | LD = $(M_PREFIX)-nacl-ld 12 | STRIP ?= 13 | EXT.DYNAMIC = so 14 | LDFLAGS.EXTRA = 15 | LIBDIR = 16 | CFLAGS.EXTRA += -fPIC 17 | CFLAGS.EXTRA += -m64 18 | LDFLAGS.EXTRA += -melf64_nacl 19 | LDFLAGS.GL = 20 | LDFLAGS.GLU = -lRegalGLU 21 | LDFLAGS.GLUT = -lRegalGLUT 22 | LDFLAGS.STATIC = 23 | LDFLAGS.DYNAMIC = -shared 24 | WARN = -Wall -W -Wno-unused-parameter 25 | POPT = -O2 26 | BIN.SUFFIX = 27 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 28 | LIB.DEVLNK = lib$(NAME).so 29 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 30 | LIB.STATIC = lib$(NAME).a 31 | LDFLAGS.SO = $(LDFLAGS.DYNAMIC) -soname=$(LIB.SONAME) 32 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_scalar_relational 25 | /// @{ 26 | 27 | 28 | 29 | /// @} 30 | }//namespace glm 31 | 32 | #include "scalar_relational.inl" 33 | -------------------------------------------------------------------------------- /include/FishGUI/Utils.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | std::string ApplicationFilePath(); 6 | 7 | inline char* CodePointToUTF8(int cp, char* str) 8 | { 9 | int n = 0; 10 | if (cp < 0x80) n = 1; 11 | else if (cp < 0x800) n = 2; 12 | else if (cp < 0x10000) n = 3; 13 | else if (cp < 0x200000) n = 4; 14 | else if (cp < 0x4000000) n = 5; 15 | else if (cp <= 0x7fffffff) n = 6; 16 | str[n] = '\0'; 17 | switch (n) { 18 | case 6: str[5] = 0x80 | (cp & 0x3f); cp = cp >> 6; cp |= 0x4000000; 19 | case 5: str[4] = 0x80 | (cp & 0x3f); cp = cp >> 6; cp |= 0x200000; 20 | case 4: str[3] = 0x80 | (cp & 0x3f); cp = cp >> 6; cp |= 0x10000; 21 | case 3: str[2] = 0x80 | (cp & 0x3f); cp = cp >> 6; cp |= 0x800; 22 | case 2: str[1] = 0x80 | (cp & 0x3f); cp = cp >> 6; cp |= 0xc0; 23 | case 1: str[0] = cp; 24 | } 25 | return str; 26 | } 27 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 matrixCross3 8 | ( 9 | tvec3 const & x 10 | ) 11 | { 12 | tmat3x3 Result(T(0)); 13 | Result[0][1] = x.z; 14 | Result[1][0] = -x.z; 15 | Result[0][2] = -x.y; 16 | Result[2][0] = x.y; 17 | Result[1][2] = x.x; 18 | Result[2][1] = -x.x; 19 | return Result; 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tmat4x4 matrixCross4 24 | ( 25 | tvec3 const & x 26 | ) 27 | { 28 | tmat4x4 Result(T(0)); 29 | Result[0][1] = x.z; 30 | Result[1][0] = -x.z; 31 | Result[0][2] = -x.y; 32 | Result[2][0] = x.y; 33 | Result[1][2] = x.x; 34 | Result[2][1] = -x.x; 35 | return Result; 36 | } 37 | 38 | }//namespace glm 39 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.darwin: -------------------------------------------------------------------------------- 1 | GLEW_DEST = /usr/local 2 | NAME = $(GLEW_NAME) 3 | CC = cc 4 | LD = cc 5 | CFLAGS.EXTRA += -dynamic -fno-common 6 | CFLAGS.EXTRA += -pedantic 7 | CFLAGS.EXTRA += -fPIC 8 | LDFLAGS.EXTRA = 9 | ifneq (undefined, $(origin GLEW_APPLE_GLX)) 10 | CFLAGS.EXTRA += -std=c99 11 | CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' 12 | LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 13 | else 14 | CFLAGS.EXTRA += -std=c89 15 | GLEW_NO_GLU = -DGLEW_NO_GLU 16 | LDFLAGS.GL = -framework OpenGL 17 | endif 18 | LDFLAGS.STATIC = 19 | LDFLAGS.DYNAMIC = 20 | WARN = -Wall -W 21 | POPT = -Os 22 | BIN.SUFFIX = 23 | LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib 24 | LIB.DEVLNK = lib$(NAME).dylib 25 | LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib 26 | LIB.STATIC = lib$(NAME).a 27 | LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) 28 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/projection.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_projection GLM_GTX_projection 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../geometric.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_projection extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_projection 25 | /// @{ 26 | 27 | /// Projects x on Normal. 28 | /// 29 | /// @see gtx_projection 30 | template 31 | GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal); 32 | 33 | /// @} 34 | }//namespace glm 35 | 36 | #include "projection.inl" 37 | -------------------------------------------------------------------------------- /examples/common/UnityToolBar.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | class UnityToolBar : public FishGUI::ToolBar 8 | { 9 | public: 10 | UnityToolBar() : ToolBar() {} 11 | 12 | UnityToolBar(UnityToolBar&) = delete; 13 | UnityToolBar& operator=(UnityToolBar&) = delete; 14 | 15 | virtual void Draw() override; 16 | 17 | typedef std::function Callback; 18 | 19 | void SetTransformType(); 20 | 21 | boost::signals2::signal OnRun; 22 | boost::signals2::signal OnStop; 23 | boost::signals2::signal OnPause; 24 | boost::signals2::signal OnResume; 25 | boost::signals2::signal OnNextFrame; 26 | 27 | protected: 28 | 29 | void Run() { OnRun(); } 30 | void Stop() { OnStop(); } 31 | void Pause() { OnPause(); } 32 | void Resume() { OnResume(); } 33 | void NextFrame() { OnNextFrame(); } 34 | }; 35 | -------------------------------------------------------------------------------- /ThirdParty/glew/build/cmake/testbuild/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.12) 2 | project(glew-cmake-test) 3 | 4 | find_package(GLEW REQUIRED CONFIG) 5 | find_package(GLEW REQUIRED CONFIG) # call twice to test multiple call 6 | find_package(OpenGL REQUIRED) 7 | 8 | add_executable(cmake-test main.c) 9 | set_target_properties(cmake-test PROPERTIES DEBUG_POSTFIX _d) 10 | target_link_libraries(cmake-test PRIVATE GLEW::GLEW ${OPENGL_LIBRARIES}) 11 | target_include_directories(cmake-test PRIVATE ${OPENGL_INCLUDE_DIR}) 12 | 13 | if(CMAKE_VERSION VERSION_LESS 3.0) 14 | set(cgex $) 15 | else() 16 | set(cgex $) 17 | endif() 18 | 19 | target_compile_definitions(cmake-test PRIVATE 20 | -DGLEW_CMAKE_TEST_CONFIG=${cgex} 21 | -DGLEW_CMAKE_TEST_TARGET_FILE_NAME=$ 22 | -DGLEW_CMAKE_TEST_TARGET_TYPE=$ 23 | ) 24 | 25 | install(TARGETS cmake-test DESTINATION bin) 26 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 polar 8 | ( 9 | tvec3 const & euclidean 10 | ) 11 | { 12 | T const Length(length(euclidean)); 13 | tvec3 const tmp(euclidean / Length); 14 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 15 | 16 | return tvec3( 17 | asin(tmp.y), // latitude 18 | atan(tmp.x, tmp.z), // longitude 19 | xz_dist); // xz distance 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER tvec3 euclidean 24 | ( 25 | tvec2 const & polar 26 | ) 27 | { 28 | T const latitude(polar.x); 29 | T const longitude(polar.y); 30 | 31 | return tvec3( 32 | cos(latitude) * sin(longitude), 33 | sin(latitude), 34 | cos(latitude) * cos(longitude)); 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = cc 3 | LD = cc 4 | M_ARCH ?= $(shell uname -m) 5 | ARCH64 = false 6 | ifeq (x86_64,${M_ARCH}) 7 | ARCH64 = true 8 | endif 9 | ifeq (ppc64,${M_ARCH}) 10 | ARCH64 = true 11 | endif 12 | ifeq (${ARCH64},true) 13 | LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64 14 | LIBDIR = $(GLEW_DEST)/lib64 15 | else 16 | LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib 17 | LIBDIR = $(GLEW_DEST)/lib 18 | endif 19 | LDFLAGS.GL = -lGL -lX11 20 | LDFLAGS.STATIC = -Wl,-Bstatic 21 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 22 | NAME = GLEW 23 | WARN = -Wall -W 24 | POPT = -O2 25 | CFLAGS.EXTRA += -fPIC 26 | CFLAGS.EXTRA += -Wcast-qual 27 | CFLAGS.EXTRA += -ansi -pedantic 28 | CFLAGS.EXTRA += -fno-stack-protector 29 | BIN.SUFFIX = 30 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 31 | LIB.DEVLNK = lib$(NAME).so 32 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 33 | LIB.STATIC = lib$(NAME).a 34 | LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 35 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtc/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.inl 3 | 4 | #include "../detail/func_exponential.hpp" 5 | 6 | namespace glm 7 | { 8 | template 9 | GLM_FUNC_QUALIFIER T gauss 10 | ( 11 | T x, 12 | T ExpectedValue, 13 | T StandardDeviation 14 | ) 15 | { 16 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER T gauss 21 | ( 22 | tvec2 const& Coord, 23 | tvec2 const& ExpectedValue, 24 | tvec2 const& StandardDeviation 25 | ) 26 | { 27 | tvec2 const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 28 | return exp(-(Squared.x + Squared.y)); 29 | } 30 | }//namespace glm 31 | 32 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.darwin-x86_64: -------------------------------------------------------------------------------- 1 | GLEW_DEST = /usr/local 2 | NAME = $(GLEW_NAME) 3 | CC = cc 4 | LD = cc 5 | CFLAGS.EXTRA += -arch x86_64 6 | CFLAGS.EXTRA += -dynamic -fno-common 7 | CFLAGS.EXTRA += -pedantic 8 | CFLAGS.EXTRA += -fPIC 9 | LDFLAGS.EXTRA = -arch x86_64 10 | ifneq (undefined, $(origin GLEW_APPLE_GLX)) 11 | CFLAGS.EXTRA += -std=c99 12 | CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' 13 | LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 14 | else 15 | CFLAGS.EXTRA += -std=c89 16 | GLEW_NO_GLU = -DGLEW_NO_GLU 17 | LDFLAGS.GL = -framework OpenGL 18 | endif 19 | LDFLAGS.STATIC = 20 | LDFLAGS.DYNAMIC = 21 | WARN = -Wall -W 22 | POPT = -Os 23 | BIN.SUFFIX = 24 | LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib 25 | LIB.DEVLNK = lib$(NAME).dylib 26 | LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib 27 | LIB.STATIC = lib$(NAME).a 28 | LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) 29 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.linux-clang: -------------------------------------------------------------------------------- 1 | NAME = $(GLEW_NAME) 2 | CC = clang 3 | LD = clang 4 | M_ARCH ?= $(shell uname -m) 5 | ARCH64 = false 6 | ifeq (x86_64,${M_ARCH}) 7 | ARCH64 = true 8 | endif 9 | ifeq (ppc64,${M_ARCH}) 10 | ARCH64 = true 11 | endif 12 | ifeq (${ARCH64},true) 13 | LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64 14 | LIBDIR = $(GLEW_DEST)/lib64 15 | else 16 | LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib 17 | LIBDIR = $(GLEW_DEST)/lib 18 | endif 19 | LDFLAGS.GL = -lGL -lX11 20 | LDFLAGS.STATIC = -Wl,-Bstatic 21 | LDFLAGS.DYNAMIC = -Wl,-Bdynamic 22 | NAME = GLEW 23 | WARN = -Wall -W 24 | POPT = -O2 25 | CFLAGS.EXTRA += -fPIC 26 | CFLAGS.EXTRA += -Wcast-qual 27 | CFLAGS.EXTRA += -ansi -pedantic 28 | CFLAGS.EXTRA += -fno-stack-protector 29 | BIN.SUFFIX = 30 | LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 31 | LIB.DEVLNK = lib$(NAME).so 32 | LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 33 | LIB.STATIC = lib$(NAME).a 34 | LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 35 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt 13 | { 14 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 15 | { 16 | tvec4 result(uninitialize); 17 | result.data = _mm_sqrt_ps(v.data); 18 | return result; 19 | } 20 | }; 21 | 22 | template <> 23 | struct compute_sqrt 24 | { 25 | GLM_FUNC_QUALIFIER static tvec4 call(tvec4 const & v) 26 | { 27 | tvec4 result(uninitialize); 28 | result.data = glm_vec4_sqrt_lowp(v.data); 29 | return result; 30 | } 31 | }; 32 | }//namespace detail 33 | }//namespace glm 34 | 35 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 36 | -------------------------------------------------------------------------------- /ThirdParty/glfw/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | Copyright (c) 2006-2016 Camilla Löwy 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any damages 6 | arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software 14 | in a product, an acknowledgment in the product documentation would 15 | be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not 18 | be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | 23 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/mixed_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Mixed product of 3 vectors. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_mixed_product extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_mixed_product 25 | /// @{ 26 | 27 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) 28 | template 29 | GLM_FUNC_DECL T mixedProduct( 30 | tvec3 const & v1, 31 | tvec3 const & v2, 32 | tvec3 const & v3); 33 | 34 | /// @} 35 | }// namespace glm 36 | 37 | #include "mixed_product.inl" 38 | -------------------------------------------------------------------------------- /examples/common/HierarchyView.cpp: -------------------------------------------------------------------------------- 1 | #include "HierarchyView.hpp" 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | //#include 8 | 9 | using namespace FishGUI; 10 | 11 | HierarchyView::HierarchyView(const char* name) : Super(name) 12 | { 13 | m_model = new HierarchyModel(); 14 | m_imContext->ymargin = 0; 15 | m_root = new GameObject("Root"); 16 | m_root->children.push_back(new GameObject("Main Camera")); 17 | m_root->children.push_back(new GameObject("Directional Light")); 18 | auto go = new GameObject("GameObject"); 19 | m_root->children.push_back(go); 20 | for (int i = 0; i < 30; ++i) 21 | { 22 | go->AddChild(new GameObject("GameObject" + std::to_string(i))); 23 | } 24 | m_unfolded.insert(m_root); 25 | m_unfolded.insert(go); 26 | 27 | for (int i = 0; i < 10; ++i) 28 | { 29 | go = go->children[0]; 30 | go->AddChild(new GameObject("Child" + std::to_string(i))); 31 | } 32 | 33 | m_selectionModel.SelectItem(m_root); 34 | } 35 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/extend.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_extend GLM_GTX_extend 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_extend 25 | /// @{ 26 | 27 | /// Extends of Length the Origin position using the (Source - Origin) direction. 28 | /// @see gtx_extend 29 | template 30 | GLM_FUNC_DECL genType extend( 31 | genType const & Origin, 32 | genType const & Source, 33 | typename genType::value_type const Length); 34 | 35 | /// @} 36 | }//namespace glm 37 | 38 | #include "extend.inl" 39 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/normal.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_normal GLM_GTX_normal 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Compute the normal of a triangle. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_normal extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_normal 26 | /// @{ 27 | 28 | //! Computes triangle normal from triangle points. 29 | //! From GLM_GTX_normal extension. 30 | template 31 | GLM_FUNC_DECL tvec3 triangleNormal( 32 | tvec3 const & p1, 33 | tvec3 const & p2, 34 | tvec3 const & p3); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "normal.inl" 40 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.darwin-ppc: -------------------------------------------------------------------------------- 1 | # Note: Mac PPC is obsolete but the configuration 2 | # is here for reference. 3 | GLEW_DEST = /usr/local 4 | NAME = $(GLEW_NAME) 5 | CC = cc 6 | LD = cc 7 | CFLAGS.EXTRA += -arch ppc 8 | CFLAGS.EXTRA += -dynamic -fno-common 9 | CFLAGS.EXTRA += -pedantic 10 | CFLAGS.EXTRA += -fPIC 11 | LDFLAGS.EXTRA = -arch ppc 12 | ifneq (undefined, $(origin GLEW_APPLE_GLX)) 13 | CFLAGS.EXTRA += -std=c99 14 | CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' 15 | LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 16 | else 17 | CFLAGS.EXTRA += -std=c89 18 | GLEW_NO_GLU = -DGLEW_NO_GLU 19 | LDFLAGS.GL = -framework OpenGL 20 | endif 21 | LDFLAGS.STATIC = 22 | LDFLAGS.DYNAMIC = 23 | WARN = -Wall -W 24 | POPT = -Os 25 | BIN.SUFFIX = 26 | LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib 27 | LIB.DEVLNK = lib$(NAME).dylib 28 | LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib 29 | LIB.STATIC = lib$(NAME).a 30 | LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) 31 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/perpendicular.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_projection (dependence) 6 | /// 7 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Perpendicular of a vector from other one 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | #include "../gtx/projection.hpp" 19 | 20 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 21 | # pragma message("GLM: GLM_GTX_perpendicular extension included") 22 | #endif 23 | 24 | namespace glm 25 | { 26 | /// @addtogroup gtx_perpendicular 27 | /// @{ 28 | 29 | //! Projects x a perpendicular axis of Normal. 30 | //! From GLM_GTX_perpendicular extension. 31 | template 32 | GLM_FUNC_DECL vecType perp( 33 | vecType const & x, 34 | vecType const & Normal); 35 | 36 | /// @} 37 | }//namespace glm 38 | 39 | #include "perpendicular.inl" 40 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.darwin-gcc6: -------------------------------------------------------------------------------- 1 | # For building with Brew gcc: 2 | # $ brew install gcc 3 | GLEW_DEST = /usr/local 4 | NAME = $(GLEW_NAME) 5 | CC = gcc-6 6 | LD = gcc-6 7 | CFLAGS.EXTRA += -dynamic -fno-common 8 | CFLAGS.EXTRA += -fPIC 9 | # Lots of warnings with -pedantic 10 | # warning: ISO C forbids conversion of object pointer to function pointer type 11 | #CFLAGS.EXTRA += -pedantic 12 | LDFLAGS.EXTRA = 13 | ifneq (undefined, $(origin GLEW_APPLE_GLX)) 14 | CFLAGS.EXTRA += -std=c99 15 | CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' 16 | LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 17 | else 18 | CFLAGS.EXTRA += -std=c89 19 | GLEW_NO_GLU = -DGLEW_NO_GLU 20 | LDFLAGS.GL = -framework OpenGL 21 | endif 22 | LDFLAGS.STATIC = 23 | LDFLAGS.DYNAMIC = 24 | WARN = -Wall -W 25 | POPT = -Os 26 | BIN.SUFFIX = 27 | LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib 28 | LIB.DEVLNK = lib$(NAME).dylib 29 | LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib 30 | LIB.STATIC = lib$(NAME).a 31 | LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) 32 | -------------------------------------------------------------------------------- /ThirdParty/glew/config/Makefile.darwin-universal: -------------------------------------------------------------------------------- 1 | # 2 | # Needs to be clang toolchain for universal: -arch i386 -arch x86_64 3 | # 4 | GLEW_DEST = /usr/local 5 | NAME = $(GLEW_NAME) 6 | CC = cc 7 | LD = cc 8 | AR = 9 | LIBTOOL = libtool -static -o 10 | STRIP = 11 | CFLAGS.EXTRA = -dynamic -fno-common 12 | CFLAGS.EXTRA += -pedantic 13 | CFLAGS.EXTRA += -fPIC 14 | CFLAGS.EXTRA += -arch i386 -arch x86_64 15 | LDFLAGS.EXTRA = -arch i386 -arch x86_64 16 | ifneq (undefined, $(origin GLEW_APPLE_GLX)) 17 | CFLAGS.EXTRA += -std=c99 18 | CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' 19 | LDFLAGS.GL = -L/usr/X11R6/lib -lGL -lX11 20 | else 21 | CFLAGS.EXTRA += -std=c89 22 | GLEW_NO_GLU = -DGLEW_NO_GLU 23 | LDFLAGS.GL = -framework OpenGL 24 | endif 25 | LDFLAGS.DYNAMIC = 26 | WARN = -Wall -W 27 | POPT = -Os 28 | BIN.SUFFIX = 29 | LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib 30 | LIB.DEVLNK = lib$(NAME).dylib 31 | LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib 32 | LIB.STATIC = lib$(NAME).a 33 | LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) -current_version $(SO_VERSION) -compatibility_version $(SO_MAJOR) 34 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_gradient_paint 2 | /// @file glm/gtx/gradient_paint.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T radialGradient 8 | ( 9 | tvec2 const & Center, 10 | T const & Radius, 11 | tvec2 const & Focal, 12 | tvec2 const & Position 13 | ) 14 | { 15 | tvec2 F = Focal - Center; 16 | tvec2 D = Position - Focal; 17 | T Radius2 = pow2(Radius); 18 | T Fx2 = pow2(F.x); 19 | T Fy2 = pow2(F.y); 20 | 21 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x)); 22 | T Denominator = Radius2 - (Fx2 + Fy2); 23 | return Numerator / Denominator; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER T linearGradient 28 | ( 29 | tvec2 const & Point0, 30 | tvec2 const & Point1, 31 | tvec2 const & Position 32 | ) 33 | { 34 | tvec2 Dist = Point1 - Point0; 35 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 36 | } 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /examples/common/SceneViewWidget.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | class SceneViewWidget : public FishGUI::Widget 9 | { 10 | public: 11 | 12 | SceneViewWidget(const char* name); 13 | 14 | void RenderScene(); 15 | 16 | void Run(); 17 | 18 | void Stop(); 19 | 20 | void Pause() 21 | { 22 | m_paused = true; 23 | } 24 | 25 | void Resume() 26 | { 27 | m_paused = false; 28 | } 29 | 30 | void NextFrame() 31 | { 32 | //m_timer += m_timePerFrame; 33 | m_pauseAfterNextFrame = true; 34 | } 35 | 36 | virtual void Draw() override 37 | { 38 | FishGUI::Image(m_frameBuffer.GetColorTexture(), m_rect, false); 39 | } 40 | 41 | protected: 42 | FishGUI::Shader m_shader; 43 | unsigned int quadVAO, quadVBO; 44 | FishGUI::FrameBuffer m_frameBuffer; 45 | 46 | bool m_running = false; 47 | bool m_pauseAfterNextFrame = false; 48 | bool m_paused = false; 49 | //float m_startTime = 0.0f; 50 | float m_timePerFrame = 1.0f / 30.0f; 51 | float m_timer = 0.0f; 52 | 53 | bool m_forceUpdate = true; 54 | }; 55 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType extend 8 | ( 9 | genType const & Origin, 10 | genType const & Source, 11 | genType const & Distance 12 | ) 13 | { 14 | return Origin + (Source - Origin) * Distance; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER tvec2 extend 19 | ( 20 | tvec2 const & Origin, 21 | tvec2 const & Source, 22 | T const & Distance 23 | ) 24 | { 25 | return Origin + (Source - Origin) * Distance; 26 | } 27 | 28 | template 29 | GLM_FUNC_QUALIFIER tvec3 extend 30 | ( 31 | tvec3 const & Origin, 32 | tvec3 const & Source, 33 | T const & Distance 34 | ) 35 | { 36 | return Origin + (Source - Origin) * Distance; 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER tvec4 extend 41 | ( 42 | tvec4 const & Origin, 43 | tvec4 const & Source, 44 | T const & Distance 45 | ) 46 | { 47 | return Origin + (Source - Origin) * Distance; 48 | } 49 | }//namespace glm 50 | -------------------------------------------------------------------------------- /examples/common/HierarchyView.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct GameObject 6 | { 7 | std::string name; 8 | GameObject* parent = nullptr; 9 | std::vector children; 10 | 11 | GameObject(const std::string& name) : name(name) {} 12 | 13 | void AddChild(GameObject* child) 14 | { 15 | children.push_back(child); 16 | child->parent = this; 17 | } 18 | }; 19 | 20 | 21 | class HierarchyModel : public FishGUI::TItemModel 22 | { 23 | typedef GameObject* T; 24 | public: 25 | 26 | virtual T Parent(T child) const override 27 | { 28 | return child->parent; 29 | } 30 | 31 | virtual T ChildAt(int index, T parent) const override 32 | { 33 | return parent->children[index]; 34 | } 35 | 36 | virtual int ChildCount(T item) const override 37 | { 38 | return (int)item->children.size(); 39 | } 40 | 41 | virtual std::string Text(T item) const override 42 | { 43 | return item->name; 44 | } 45 | }; 46 | 47 | class HierarchyView : public FishGUI::TreeWidget 48 | { 49 | public: 50 | typedef FishGUI::TreeWidget Super; 51 | 52 | HierarchyView(const char* name); 53 | }; 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FishGUI 2 | 3 | FIshGUI is a immediate mode GUI([IMGUI](http://sol.gfxile.net/imgui/)) library, based on [NanoVG](https://github.com/memononen/nanovg). 4 | 5 | ![ScreenShot](./doc/ScreenShot.png) 6 | 7 | with [FishEngine](https://github.com/yushroom/FishEngine) 8 | 9 | ![ScreenShot_FishEditor](./doc/ScreenShot_FishEditor.jpg) 10 | 11 | 12 | 13 | ## How to Build 14 | 15 | ### Linux / macOS 16 | 17 | Tested on Ubuntu 17.10 and macOS 10.13.2 18 | 19 | ```shell 20 | # ubuntu 21 | # if you do not have opengl dev environment 22 | sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev 23 | 24 | # glfw requires xorg 25 | sudo apt-get xorg-dev 26 | 27 | # boost 28 | sudo apt-get install libboost-all-dev 29 | ``` 30 | 31 | ```shell 32 | # macOS 33 | brew install boost 34 | ``` 35 | 36 | - Build: 37 | 38 | ```shell 39 | git clone https://github.com/yushroom/FishGUI.git 40 | cd FishGUI 41 | mkdir build && cd build 42 | cmake .. 43 | make 44 | ``` 45 | 46 | build result can be found under **FishGUI/bin** 47 | 48 | ### Windows 49 | 50 | Tested on Windows10 with VS2017 51 | 52 | Since **filesystem** is shipped with Visual Studio(2015/2017), boost is not required. 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/log_base.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_log_base GLM_GTX_log_base 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Logarithm for any base. base can be a vector or a scalar. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_log_base extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_log_base 25 | /// @{ 26 | 27 | /// Logarithm for any base. 28 | /// From GLM_GTX_log_base. 29 | template 30 | GLM_FUNC_DECL genType log( 31 | genType const & x, 32 | genType const & base); 33 | 34 | /// Logarithm for any base. 35 | /// From GLM_GTX_log_base. 36 | template class vecType> 37 | GLM_FUNC_DECL vecType sign( 38 | vecType const & x, 39 | vecType const & base); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "log_base.inl" 45 | -------------------------------------------------------------------------------- /include/FishGUI/Render/FrameBuffer.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../Math.hpp" 4 | #include 5 | 6 | namespace FishGUI 7 | { 8 | class FrameBuffer 9 | { 10 | public: 11 | FrameBuffer() = default; 12 | ~FrameBuffer(); 13 | 14 | void Init(int width, int height); 15 | 16 | void Resize(int width, int height); 17 | 18 | void Bind(); 19 | 20 | void Unbind(); 21 | 22 | FishGUI::Size GetSize() const 23 | { 24 | return m_size; 25 | } 26 | 27 | unsigned int GetColorTexture() const 28 | { 29 | if (m_enableMSAA) 30 | return m_colorbuffer2; 31 | return m_colorbuffer; 32 | } 33 | 34 | unsigned int GetFramebuffer() const 35 | { 36 | return m_framebuffer; 37 | } 38 | 39 | void EnableMSAA() 40 | { 41 | assert(!m_enableMSAA); 42 | m_enableMSAA = true; 43 | } 44 | 45 | protected: 46 | bool m_initialized = false; 47 | FishGUI::Size m_size; 48 | unsigned int m_framebuffer = 0; 49 | unsigned int m_colorbuffer = 0; 50 | unsigned int m_depthbuffer = 0; 51 | 52 | bool m_enableMSAA = false; 53 | unsigned int m_framebuffer2 = 0; // resolve multi sample framebuffer 54 | unsigned int m_colorbuffer2 = 0; // resolve multi sample framebuffer 55 | }; 56 | } 57 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/raw_data.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_raw_data GLM_GTX_raw_data 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Projection of a vector to other one 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../detail/setup.hpp" 17 | #include "../detail/type_int.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_raw_data extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_raw_data 26 | /// @{ 27 | 28 | //! Type for byte numbers. 29 | //! From GLM_GTX_raw_data extension. 30 | typedef detail::uint8 byte; 31 | 32 | //! Type for word numbers. 33 | //! From GLM_GTX_raw_data extension. 34 | typedef detail::uint16 word; 35 | 36 | //! Type for dword numbers. 37 | //! From GLM_GTX_raw_data extension. 38 | typedef detail::uint32 dword; 39 | 40 | //! Type for qword numbers. 41 | //! From GLM_GTX_raw_data extension. 42 | typedef detail::uint64 qword; 43 | 44 | /// @} 45 | }// namespace glm 46 | 47 | #include "raw_data.inl" 48 | -------------------------------------------------------------------------------- /include/FishGUI/GLEnvironment.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __APPLE__ 4 | #include 5 | #include 6 | #define GLFW_INCLUDE_GLCOREARB 7 | #else 8 | #ifndef GLEW_STATIC 9 | #define GLEW_STATIC 10 | #endif 11 | #include 12 | #endif 13 | 14 | #include 15 | 16 | namespace FishGUI 17 | { 18 | inline void _checkOpenGLError(const char *file, int line) 19 | { 20 | GLenum err = glGetError(); 21 | 22 | while (err != GL_NO_ERROR) 23 | { 24 | const char* error; 25 | 26 | switch (err) 27 | { 28 | case GL_INVALID_OPERATION: error = "INVALID_OPERATION"; break; 29 | case GL_INVALID_ENUM: error = "INVALID_ENUM"; break; 30 | case GL_INVALID_VALUE: error = "INVALID_VALUE"; break; 31 | case GL_OUT_OF_MEMORY: error = "OUT_OF_MEMORY"; break; 32 | case GL_INVALID_FRAMEBUFFER_OPERATION: error = "INVALID_FRAMEBUFFER_OPERATION"; break; 33 | default: error = "UNKNOWN_ERROR"; 34 | } 35 | 36 | // LogError(Format("GL_%1% - %2%:%3%", error, file, line)); 37 | printf("[%s:%d] GL_%s\n", file, line, error); 38 | err = glGetError(); 39 | } 40 | } 41 | } 42 | 43 | #define glCheckError() FishGUI::_checkOpenGLError(__FILE__,__LINE__); 44 | -------------------------------------------------------------------------------- /ThirdParty/glm/detail/precision.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/precision.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm 9 | { 10 | enum precision 11 | { 12 | packed_highp, 13 | packed_mediump, 14 | packed_lowp, 15 | 16 | # if GLM_HAS_ALIGNED_TYPE 17 | aligned_highp, 18 | aligned_mediump, 19 | aligned_lowp, 20 | aligned = aligned_highp, 21 | # endif 22 | 23 | highp = packed_highp, 24 | mediump = packed_mediump, 25 | lowp = packed_lowp, 26 | packed = packed_highp, 27 | 28 | # if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED) 29 | defaultp = aligned_highp 30 | # else 31 | defaultp = highp 32 | # endif 33 | }; 34 | 35 | namespace detail 36 | { 37 | template 38 | struct is_aligned 39 | { 40 | static const bool value = false; 41 | }; 42 | 43 | # if GLM_HAS_ALIGNED_TYPE 44 | template<> 45 | struct is_aligned 46 | { 47 | static const bool value = true; 48 | }; 49 | 50 | template<> 51 | struct is_aligned 52 | { 53 | static const bool value = true; 54 | }; 55 | 56 | template<> 57 | struct is_aligned 58 | { 59 | static const bool value = true; 60 | }; 61 | # endif 62 | }//namespace detail 63 | }//namespace glm 64 | -------------------------------------------------------------------------------- /ThirdParty/glew/build/cmake/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 2 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 3 | endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 4 | 5 | if (NOT DEFINED CMAKE_INSTALL_PREFIX) 6 | set (CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@") 7 | endif () 8 | message(${CMAKE_INSTALL_PREFIX}) 9 | 10 | file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) 11 | string(REGEX REPLACE "\n" ";" files "${files}") 12 | foreach(file ${files}) 13 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}") 14 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 15 | exec_program( 16 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 17 | OUTPUT_VARIABLE rm_out 18 | RETURN_VALUE rm_retval 19 | ) 20 | if(NOT "${rm_retval}" STREQUAL 0) 21 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") 22 | endif(NOT "${rm_retval}" STREQUAL 0) 23 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 24 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.") 25 | endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 26 | endforeach(file) 27 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/matrix_cross_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Build cross product matrices 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 20 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included") 21 | #endif 22 | 23 | namespace glm 24 | { 25 | /// @addtogroup gtx_matrix_cross_product 26 | /// @{ 27 | 28 | //! Build a cross product matrix. 29 | //! From GLM_GTX_matrix_cross_product extension. 30 | template 31 | GLM_FUNC_DECL tmat3x3 matrixCross3( 32 | tvec3 const & x); 33 | 34 | //! Build a cross product matrix. 35 | //! From GLM_GTX_matrix_cross_product extension. 36 | template 37 | GLM_FUNC_DECL tmat4x4 matrixCross4( 38 | tvec3 const & x); 39 | 40 | /// @} 41 | }//namespace glm 42 | 43 | #include "matrix_cross_product.inl" 44 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/orthonormalize.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize 8 | /// @ingroup gtx 9 | /// 10 | /// @brief Orthonormalize matrices. 11 | /// 12 | /// need to be included to use these functionalities. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../vec3.hpp" 18 | #include "../mat3x3.hpp" 19 | #include "../geometric.hpp" 20 | 21 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 22 | # pragma message("GLM: GLM_GTX_orthonormalize extension included") 23 | #endif 24 | 25 | namespace glm 26 | { 27 | /// @addtogroup gtx_orthonormalize 28 | /// @{ 29 | 30 | /// Returns the orthonormalized matrix of m. 31 | /// 32 | /// @see gtx_orthonormalize 33 | template 34 | GLM_FUNC_DECL tmat3x3 orthonormalize(tmat3x3 const & m); 35 | 36 | /// Orthonormalizes x according y. 37 | /// 38 | /// @see gtx_orthonormalize 39 | template 40 | GLM_FUNC_DECL tvec3 orthonormalize(tvec3 const & x, tvec3 const & y); 41 | 42 | /// @} 43 | }//namespace glm 44 | 45 | #include "orthonormalize.inl" 46 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/polar_coordinates.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Conversion from Euclidean space to polar space and revert. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_polar_coordinates extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_polar_coordinates 25 | /// @{ 26 | 27 | /// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. 28 | /// 29 | /// @see gtx_polar_coordinates 30 | template 31 | GLM_FUNC_DECL tvec3 polar( 32 | tvec3 const & euclidean); 33 | 34 | /// Convert Polar to Euclidean coordinates. 35 | /// 36 | /// @see gtx_polar_coordinates 37 | template 38 | GLM_FUNC_DECL tvec3 euclidean( 39 | tvec2 const & polar); 40 | 41 | /// @} 42 | }//namespace glm 43 | 44 | #include "polar_coordinates.inl" 45 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/closest_point.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_closest_point GLM_GTX_closest_point 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Find the point on a straight line which is the closet of a point. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_closest_point extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_closest_point 25 | /// @{ 26 | 27 | /// Find the point on a straight line which is the closet of a point. 28 | /// @see gtx_closest_point 29 | template 30 | GLM_FUNC_DECL tvec3 closestPointOnLine( 31 | tvec3 const & point, 32 | tvec3 const & a, 33 | tvec3 const & b); 34 | 35 | /// 2d lines work as well 36 | template 37 | GLM_FUNC_DECL tvec2 closestPointOnLine( 38 | tvec2 const & point, 39 | tvec2 const & a, 40 | tvec2 const & b); 41 | 42 | /// @} 43 | }// namespace glm 44 | 45 | #include "closest_point.inl" 46 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/optimum_pow.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Integer exponentiation of power functions. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_optimum_pow extension included") 20 | #endif 21 | 22 | namespace glm{ 23 | namespace gtx 24 | { 25 | /// @addtogroup gtx_optimum_pow 26 | /// @{ 27 | 28 | /// Returns x raised to the power of 2. 29 | /// 30 | /// @see gtx_optimum_pow 31 | template 32 | GLM_FUNC_DECL genType pow2(genType const & x); 33 | 34 | /// Returns x raised to the power of 3. 35 | /// 36 | /// @see gtx_optimum_pow 37 | template 38 | GLM_FUNC_DECL genType pow3(genType const & x); 39 | 40 | /// Returns x raised to the power of 4. 41 | /// 42 | /// @see gtx_optimum_pow 43 | template 44 | GLM_FUNC_DECL genType pow4(genType const & x); 45 | 46 | /// @} 47 | }//namespace gtx 48 | }//namespace glm 49 | 50 | #include "optimum_pow.inl" 51 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtc/functions.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_functions 2 | /// @file glm/gtc/functions.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtc_half_float (dependence) 6 | /// @see gtc_quaternion (dependence) 7 | /// 8 | /// @defgroup gtc_functions GLM_GTC_functions 9 | /// @ingroup gtc 10 | /// 11 | /// @brief List of useful common functions. 12 | /// 13 | /// need to be included to use these functionalities. 14 | 15 | #pragma once 16 | 17 | // Dependencies 18 | #include "../detail/setup.hpp" 19 | #include "../detail/precision.hpp" 20 | #include "../detail/type_vec2.hpp" 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTC_functions extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtc_functions 29 | /// @{ 30 | 31 | /// 1D gauss function 32 | /// 33 | /// @see gtc_epsilon 34 | template 35 | GLM_FUNC_DECL T gauss( 36 | T x, 37 | T ExpectedValue, 38 | T StandardDeviation); 39 | 40 | /// 2D gauss function 41 | /// 42 | /// @see gtc_epsilon 43 | template 44 | GLM_FUNC_DECL T gauss( 45 | tvec2 const& Coord, 46 | tvec2 const& ExpectedValue, 47 | tvec2 const& StandardDeviation); 48 | 49 | /// @} 50 | }//namespace glm 51 | 52 | #include "functions.inl" 53 | 54 | -------------------------------------------------------------------------------- /ThirdParty/glfw/src/xkb_unicode.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 Linux - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2014 Jonas Ådahl 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it 12 | // freely, subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; you must not 15 | // claim that you wrote the original software. If you use this software 16 | // in a product, an acknowledgment in the product documentation would 17 | // be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, and must not 20 | // be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source 23 | // distribution. 24 | // 25 | //======================================================================== 26 | 27 | long _glfwKeySym2Unicode(unsigned int keysym); 28 | 29 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/closest_point.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 closestPointOnLine 8 | ( 9 | tvec3 const & point, 10 | tvec3 const & a, 11 | tvec3 const & b 12 | ) 13 | { 14 | T LineLength = distance(a, b); 15 | tvec3 Vector = point - a; 16 | tvec3 LineDirection = (b - a) / LineLength; 17 | 18 | // Project Vector to LineDirection to get the distance of point from a 19 | T Distance = dot(Vector, LineDirection); 20 | 21 | if(Distance <= T(0)) return a; 22 | if(Distance >= LineLength) return b; 23 | return a + LineDirection * Distance; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER tvec2 closestPointOnLine 28 | ( 29 | tvec2 const & point, 30 | tvec2 const & a, 31 | tvec2 const & b 32 | ) 33 | { 34 | T LineLength = distance(a, b); 35 | tvec2 Vector = point - a; 36 | tvec2 LineDirection = (b - a) / LineLength; 37 | 38 | // Project Vector to LineDirection to get the distance of point from a 39 | T Distance = dot(Vector, LineDirection); 40 | 41 | if(Distance <= T(0)) return a; 42 | if(Distance >= LineLength) return b; 43 | return a + LineDirection * Distance; 44 | } 45 | 46 | }//namespace glm 47 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/matrix_decompose.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_decompose 2 | /// @file glm/gtx/matrix_decompose.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Decomposes a model matrix to translations, rotation and scale components 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../mat4x4.hpp" 17 | #include "../vec3.hpp" 18 | #include "../vec4.hpp" 19 | #include "../geometric.hpp" 20 | #include "../gtc/quaternion.hpp" 21 | #include "../gtc/matrix_transform.hpp" 22 | 23 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 | # pragma message("GLM: GLM_GTX_matrix_decompose extension included") 25 | #endif 26 | 27 | namespace glm 28 | { 29 | /// @addtogroup gtx_matrix_decompose 30 | /// @{ 31 | 32 | /// Decomposes a model matrix to translations, rotation and scale components 33 | /// @see gtx_matrix_decompose 34 | template 35 | GLM_FUNC_DECL bool decompose( 36 | tmat4x4 const & modelMatrix, 37 | tvec3 & scale, tquat & orientation, tvec3 & translation, tvec3 & skew, tvec4 & perspective); 38 | 39 | /// @} 40 | }//namespace glm 41 | 42 | #include "matrix_decompose.inl" 43 | -------------------------------------------------------------------------------- /cmake/MacOSXBundleInfo.plist.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrincipalClass 6 | NSApplication 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | ${MACOSX_BUNDLE_EXECUTABLE_NAME} 11 | CFBundleGetInfoString 12 | ${MACOSX_BUNDLE_INFO_STRING} 13 | CFBundleIconFile 14 | ${MACOSX_BUNDLE_ICON_FILE} 15 | CFBundleIdentifier 16 | ${MACOSX_BUNDLE_GUI_IDENTIFIER} 17 | CFBundleInfoDictionaryVersion 18 | 6.0 19 | CFBundleLongVersionString 20 | ${MACOSX_BUNDLE_LONG_VERSION_STRING} 21 | CFBundleName 22 | ${MACOSX_BUNDLE_BUNDLE_NAME} 23 | CFBundlePackageType 24 | APPL 25 | CFBundleShortVersionString 26 | ${MACOSX_BUNDLE_SHORT_VERSION_STRING} 27 | CFBundleSignature 28 | ???? 29 | CFBundleVersion 30 | ${MACOSX_BUNDLE_BUNDLE_VERSION} 31 | CSResourcesFileMapped 32 | 33 | NSHumanReadableCopyright 34 | ${MACOSX_BUNDLE_COPYRIGHT} 35 | 36 | 37 | -------------------------------------------------------------------------------- /ThirdParty/glm/gtx/string_cast.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_string_cast 2 | /// @file glm/gtx/string_cast.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtc_half_float (dependence) 6 | /// @see gtx_integer (dependence) 7 | /// @see gtx_quaternion (dependence) 8 | /// 9 | /// @defgroup gtx_string_cast GLM_GTX_string_cast 10 | /// @ingroup gtx 11 | /// 12 | /// @brief Setup strings for GLM type values 13 | /// 14 | /// need to be included to use these functionalities. 15 | /// This extension is not supported with CUDA 16 | 17 | #pragma once 18 | 19 | // Dependency: 20 | #include "../glm.hpp" 21 | #include "../gtc/type_precision.hpp" 22 | #include "../gtc/quaternion.hpp" 23 | #include "../gtx/dual_quaternion.hpp" 24 | #include 25 | 26 | #if(GLM_COMPILER & GLM_COMPILER_CUDA) 27 | # error "GLM_GTX_string_cast is not supported on CUDA compiler" 28 | #endif 29 | 30 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 31 | # pragma message("GLM: GLM_GTX_string_cast extension included") 32 | #endif 33 | 34 | namespace glm 35 | { 36 | /// @addtogroup gtx_string_cast 37 | /// @{ 38 | 39 | /// Create a string from a GLM vector or matrix typed variable. 40 | /// @see gtx_string_cast extension. 41 | template