GPU Texture Generator

Imogen

GPU/CPU Texture Generator

GPU Texture generator using dear imgui for UI. Not production ready and a bit messy but really fun to code. This is an hybrid project that can run natively or on the web (thanks to emscripten). Basically, add GPU and CPU nodes in a graph to manipulate and generate images. A web build is available here : http://skaven.fr/imogen/ Image of Imogen 0.13 Web Edition Currently nodes can be written in GLSL or C or Python.

Image of Imogen 0.9 Image of Imogen 0.9

Use CMake and VisualStudio to build it. Windows and web builds are available.

Web Edition limitations:

  • no threaded jobs
  • no C/Python nodes
  • no Python plugins
  • no file load/save

Features:

  • Node based texture editing
  • material library browser
  • edit/change node shaders inside the app
  • bake textures to .png, .jpg, .tga, .bmp, .hdr, mp4
  • PBR preview
  • timeline for parameters animation

Currently implemented nodes

  • circle and square generator
  • sine generator
  • checker transform
  • transform
  • Mul/Add
  • smoothstep
  • pixelize
  • blur
  • normal map from height map
  • sphere/plan previewer
  • Hexagon
  • Mul-Add colors
  • Blend (add, mul, min, max)
  • Invert color
  • Circle Splatter
  • Ramp
  • Tile
  • Polar coordinates
  • ...

Check the project page for roadmap.


This software uses the following (awesome) projects:

Dear ImGui - Omar Cornut https://github.com/ocornut/imgui

stb_image, stb_image_write - Sean T. Barett https://github.com/nothings/stb

EnkiTS - Doug Binks https://github.com/dougbinks/enkiTS

Tiny C Compiler - Fabrice Bellard https://bellard.org/tcc/

SDL2 - https://www.libsdl.org/

NativeFileDialog - Michael Labbe https://github.com/mlabbe/nativefiledialog

gl3w - Slavomir Kaslev https://github.com/skaslev/gl3w

TinyDir - https://github.com/cxong/tinydir

cmft - cubemap filtering tool - Dario Manesku https://github.com/dariomanesku/cmft

dear imgui color scheme - codz01 https://github.com/ocornut/imgui/issues/1902#issuecomment-429445321

FFMPEG - Fabrice Bellard

Python 3 - Python.org

pybind 11 - https://github.com/pybind/pybind11

RapidJSON - https://github.com/Tencent/rapidjson

nanosvg - Mikko Mononen https://github.com/memononen/nanosvg

GLSL-PathTracer - knightcrawler25 https://github.com/knightcrawler25/GLSL-PathTracer

imgui_markdown - Juliette Foucaut https://github.com/juliettef/imgui_markdown

CGLTF - Johannes Kuhlmann https://github.com/jkuhlmann/cgltf

Comments
  • C Node question

    C Node question

    I've been playing around with the node editor and it is a ton of fun. I have a question about the C nodes. I've been trying to add more functionality to the C nodes and I am attempting to include libraries like stdio and the like, but if I add an include to any of the C node scripts I get a rotating set of errors that either say source not found, relating to the ntdll.dll or an "InProcessClient.pdb not loaded, Access violation writing location" error. Any ideas?

    Thanks!

  • Replacement for libtcc

    Replacement for libtcc

    Currently some nodes (paint, file read/write) are coded in C using libtcc. There are some unrecoverable errors, will not work in JS world because of JIT and I don't feel like recompiling libtcc with emscripten. I'm looking for alternative solution. 1 might be to replace it with a JS interpreter. What are other options?

  • 0.6.0 crashes immediately on start

    0.6.0 crashes immediately on start

    windows 7 64bit

    0.5.0 works

    using gdb i found:

    (gdb) run Starting program: ...\Imogen\imogen.exe [New Thread 8244.0x4c8] [New Thread 8244.0x2e04] [New Thread 8244.0x26f8] [New Thread 8244.0xdf4] [New Thread 8244.0x2e8c] warning: Fatal Python error: warning: unable to load the file system codec warning: [Thread 8244.0x2e8c exited with code 3] [Thread 8244.0x26f8 exited with code 3] [Thread 8244.0xdf4 exited with code 3] [Thread 8244.0x2e04 exited with code 3] [Inferior 1 (process 8244) exited with code 03]

  • Imogen web version

    Imogen web version

    Compiled 0.13 (because 0.14 is not ready yet) with emscripten. http://skaven.fr/imogen/imogen.html Many, many, like, many broken stuff BUT it runs. Pretty happy with the result. Branch is https://github.com/CedricGuillemet/Imogen/tree/dev-0.13-emscripten run emb.bat to compile it once you have emscripten sdk installed and activated.

  • Crossplatform CMakeLists.txt

    Crossplatform CMakeLists.txt

    Not perfect yet, still require manual path for tcc

    I'll try to put a hand on a windows system, I'm sure we can make library detection automatic on windows as well

  • Parse .glsl code to generate meta datas

    Parse .glsl code to generate meta datas

    For now, the metadatas are stored in Library. I'd like to get more freedom/reactivity and generate the metadata (basically parameters and types) from a parsing (threaded/jobified) of those .glsl

  • Release 0.2

    Release 0.2

    Previously planed for this weekend, v0.2 is a bit delayed as I rewrote the evaluation code multiple times this weekend. I'm more happy with it but it can still be better. I will release it monday or tuesday

  • Copy and Paste nodes

    Copy and Paste nodes

    I don't know if there is no implementation of copy and paste yet, but i can't copy and paste nodes. If there isn't an implementation for that, could you make it please? it would help a lot. ^^

  • Creating looped graph leads to broken data

    Creating looped graph leads to broken data

    If you have two items with input and output, and connect them back to each other, not only does the application crash, but it saves the state of the project so that if you load the same graph again, it immediately crashes.

  • Compilation under clang

    Compilation under clang

    This is the first part of changes needed for other platforms. I do not have windows, so I haven't tried it back. Next PR will be reworked CMakeLists to work on osx/linux.

  • Question about Imogen itself

    Question about Imogen itself

    Is this tool related to the internal java-based SCEE tool also named imogen? if it is, and does the same thing, I have a couple of followup questions.

  • Is Imogen dead?

    Is Imogen dead?

    There hasn't been any development in quite some time. Is this project still active or expected to become active again?

    I've been checking for new releases, but nothing seems to have happened for more than a full year now - no commits and no releases.

    I'd really love to see Imogen develop, as there isn't really any solid FOSS PBR seamless map generation tool out there, and Imogen seemed to be a very promising project.

    Sadly I wasn't ever able to use it due to problems with running it on Linux.

  • Web build doesn't build materials / show anything

    Web build doesn't build materials / show anything

    When I open any material in the web version at http://skaven.fr/imogen/ it lacks any preview, and manually hitting "Build current material" gets stuck at 0%.

    I'm using Firefox 72.0.1 (64-bit).

    There are some warnings and errors in my browsers debugger console, but I'm not sure which one would be relevant to this. I'm not sure if this issue only affects me or also other users / browsers. I can probably provide more details from those logs if requested. For now I'll assume that this issue is easy to reproduce (I believe #76 also mentions this problem?).

  • Better UI Idea & Web Issue

    Better UI Idea & Web Issue

    Idea: Maybe you can make your UI better looking if you use blender 2.8 UI. Issue: Material previews are blank, if I try one of the examples that happens too.

  • Building on linux

    Building on linux

    I have been trying to build it on Linux, but I'm having some compilation errors, the first one was regarding BGFX_CONFIG_RENDERER_OPENGLES, I manage to fix it by changing

    https://github.com/CedricGuillemet/Imogen//blob/dev-0.14/CMakeLists.txt#L82 to be ADD_DEFINITIONS(-DBGFX_CONFIG_RENDERER_OPENGLES=31) but now I'm getting: undefined reference to 'stbi_write_png' when linking.

    By the way, great work, with a little bit of marketing it can become a huge open source project.

  • Can't build on Linux - unknown platform

    Can't build on Linux - unknown platform

    I'm trying to build latest Master branch code of Imogen on Manjaro Linux. This is what I get:

    [[email protected] Imogen]$ cmake .
    -- The C compiler identification is GNU 8.3.0
    -- The CXX compiler identification is GNU 8.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.1") 
    -- Checking for module 'gtk+-3.0'
    --   Found gtk+-3.0, version 3.24.8
    CMake Warning (dev) at /usr/share/cmake-3.14/Modules/FindOpenGL.cmake:275 (message):
      Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
      available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
      cmake_policy command to set the policy and suppress this warning.
    
      FindOpenGL found both a legacy GL library:
    
        OPENGL_gl_LIBRARY: /usr/lib/libGL.so
    
      and GLVND libraries for OpenGL and GLX:
    
        OPENGL_opengl_LIBRARY: /usr/lib/libOpenGL.so
        OPENGL_glx_LIBRARY: /usr/lib/libGLX.so
    
      OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
      compatibility with CMake 3.10 and below the legacy GL library will be used.
    Call Stack (most recent call first):
      CMakeLists.txt:76 (find_package)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Found OpenGL: /usr/lib/libOpenGL.so   
    -- Console is hidden
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /data/Applications/Imogen
    [[email protected] Imogen]$ make 
    Scanning dependencies of target Imogen
    [  2%] Building CXX object CMakeFiles/Imogen.dir/src/Bitmap.cpp.o
    In file included from /data/Applications/Imogen/src/Bitmap.cpp:26:
    /data/Applications/Imogen/src/Platform.h:92:2: error: #error unknown platform
     #error unknown platform
      ^~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:82:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:82:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:83:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:83:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:84:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:84:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:85:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:85:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:86:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:86:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:87:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA, // RGBE
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:87:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA, // RGBE
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:89:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:89:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:90:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:90:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:91:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:91:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:92:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:92:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:93:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:93:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:95:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA, // RGBM
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:95:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA, // RGBM
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:98:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:98:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:99:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:99:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:100:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:100:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:101:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:101:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:102:5: error: ‘GL_RGB’ was not declared in this scope
         GL_RGB,
         ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:102:5: note: suggested alternative: ‘NSVG_RGB’
         GL_RGB,
         ^~~~~~
         NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:103:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA, // RGBE
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:103:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA, // RGBE
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:105:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:105:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:106:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:106:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:107:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:107:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:108:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:108:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:109:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA,
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:109:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA,
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:111:5: error: ‘GL_RGBA’ was not declared in this scope
         GL_RGBA, // RGBM
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:111:5: note: suggested alternative: ‘NL_ARGMAX’
         GL_RGBA, // RGBM
         ^~~~~~~
         NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:116:5: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_X’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_POSITIVE_X,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:117:5: error: ‘GL_TEXTURE_CUBE_MAP_NEGATIVE_X’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:118:5: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_Y’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:119:5: error: ‘GL_TEXTURE_CUBE_MAP_NEGATIVE_Y’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:120:5: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_Z’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:121:5: error: ‘GL_TEXTURE_CUBE_MAP_NEGATIVE_Z’ was not declared in this scope
         GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In function ‘void SaveCapture(const string&, int, int, int, int)’:
    /data/Applications/Imogen/src/Bitmap.cpp:132:19: error: ‘GL_VIEWPORT’ was not declared in this scope
         glGetIntegerv(GL_VIEWPORT, viewport);
                       ^~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:132:5: error: ‘glGetIntegerv’ was not declared in this scope
         glGetIntegerv(GL_VIEWPORT, viewport);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:132:5: note: suggested alternative: ‘getdate_err’
         glGetIntegerv(GL_VIEWPORT, viewport);
         ^~~~~~~~~~~~~
         getdate_err
    /data/Applications/Imogen/src/Bitmap.cpp:136:48: error: ‘GL_RGB’ was not declared in this scope
         glReadPixels(x, viewport[3] - y - h, w, h, GL_RGB, GL_UNSIGNED_BYTE, imgBits);
                                                    ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:136:48: note: suggested alternative: ‘NSVG_RGB’
         glReadPixels(x, viewport[3] - y - h, w, h, GL_RGB, GL_UNSIGNED_BYTE, imgBits);
                                                    ^~~~~~
                                                    NSVG_RGB
    /data/Applications/Imogen/src/Bitmap.cpp:136:56: error: ‘GL_UNSIGNED_BYTE’ was not declared in this scope
         glReadPixels(x, viewport[3] - y - h, w, h, GL_RGB, GL_UNSIGNED_BYTE, imgBits);
                                                            ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:136:5: error: ‘glReadPixels’ was not declared in this scope
         glReadPixels(x, viewport[3] - y - h, w, h, GL_RGB, GL_UNSIGNED_BYTE, imgBits);
         ^~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In static member function ‘static unsigned int Image::Upload(Image*, unsigned int, int)’:
    /data/Applications/Imogen/src/Bitmap.cpp:260:9: error: ‘glGenTextures’ was not declared in this scope
             glGenTextures(1, &textureId);
             ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:262:50: error: ‘GL_TEXTURE_2D’ was not declared in this scope
         unsigned int targetType = (cubeFace == -1) ? GL_TEXTURE_2D : GL_TEXTURE_CUBE_MAP;
                                                      ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:262:66: error: ‘GL_TEXTURE_CUBE_MAP’ was not declared in this scope
         unsigned int targetType = (cubeFace == -1) ? GL_TEXTURE_2D : GL_TEXTURE_CUBE_MAP;
                                                                      ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:263:5: error: ‘glBindTexture’ was not declared in this scope
         glBindTexture(targetType, textureId);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:274:18: error: ‘GL_UNSIGNED_BYTE’ was not declared in this scope
                      GL_UNSIGNED_BYTE,
                      ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:267:5: error: ‘glTexImage2D’ was not declared in this scope
         glTexImage2D((cubeFace == -1) ? GL_TEXTURE_2D : glCubeFace[cubeFace],
         ^~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:276:14: error: ‘GL_LINEAR’ was not declared in this scope
         TexParam(GL_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, targetType);
                  ^~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:276:14: note: suggested alternative: ‘__LINE__’
         TexParam(GL_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, targetType);
                  ^~~~~~~~~
                  __LINE__
    /data/Applications/Imogen/src/Bitmap.cpp:276:36: error: ‘GL_CLAMP_TO_EDGE’ was not declared in this scope
         TexParam(GL_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, targetType);
                                        ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::BindAsTarget() const’:
    /data/Applications/Imogen/src/Bitmap.cpp:458:23: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
                           ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:458:5: error: ‘glBindFramebuffer’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:459:5: error: ‘glViewport’ was not declared in this scope
         glViewport(0, 0, mImage->mWidth, mImage->mHeight);
         ^~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::BindAsCubeTarget() const’:
    /data/Applications/Imogen/src/Bitmap.cpp:464:19: error: ‘GL_TEXTURE_CUBE_MAP’ was not declared in this scope
         glBindTexture(GL_TEXTURE_CUBE_MAP, mGLTexID);
                       ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:464:5: error: ‘glBindTexture’ was not declared in this scope
         glBindTexture(GL_TEXTURE_CUBE_MAP, mGLTexID);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:465:23: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
                           ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:465:5: error: ‘glBindFramebuffer’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::BindCubeFace(size_t, int, int)’:
    /data/Applications/Imogen/src/Bitmap.cpp:471:9: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
             GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GLenum(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face), mGLTexID, mipmap);
             ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:471:25: error: ‘GL_COLOR_ATTACHMENT0’ was not declared in this scope
             GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GLenum(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face), mGLTexID, mipmap);
                             ^~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:471:54: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_X’ was not declared in this scope
             GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GLenum(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face), mGLTexID, mipmap);
                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:471:47: error: ‘GLenum’ was not declared in this scope
             GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GLenum(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face), mGLTexID, mipmap);
                                                   ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:471:47: note: suggested alternative: ‘enum’
             GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GLenum(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face), mGLTexID, mipmap);
                                                   ^~~~~~
                                                   enum
    /data/Applications/Imogen/src/Bitmap.cpp:470:5: error: ‘glFramebufferTexture2D’ was not declared in this scope
         glFramebufferTexture2D(
         ^~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:472:5: error: ‘glViewport’ was not declared in this scope
         glViewport(0, 0, faceWidth >> mipmap, faceWidth >> mipmap);
         ^~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::Destroy()’:
    /data/Applications/Imogen/src/Bitmap.cpp:478:9: error: ‘glDeleteTextures’ was not declared in this scope
             glDeleteTextures(1, &mGLTexID);
             ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:480:9: error: ‘glDeleteTextures’ was not declared in this scope
             glDeleteTextures(1, &mGLTexDepth);
             ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:483:13: error: ‘glIsFramebuffer’ was not declared in this scope
             if (glIsFramebuffer(mFbo))
                 ^~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:485:13: error: ‘glDeleteFramebuffers’ was not declared in this scope
                 glDeleteFramebuffers(1, &mFbo);
                 ^~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:493:9: error: ‘glDeleteRenderbuffers’ was not declared in this scope
             glDeleteRenderbuffers(1, &mDepthBuffer);
             ^~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::InitBuffer(int, int, bool)’:
    /data/Applications/Imogen/src/Bitmap.cpp:530:5: error: ‘glGenFramebuffers’ was not declared in this scope
         glGenFramebuffers(1, &mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:531:23: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
                           ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:531:5: error: ‘glBindFramebuffer’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:534:5: error: ‘glGenTextures’ was not declared in this scope
         glGenTextures(1, &mGLTexID);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:535:19: error: ‘GL_TEXTURE_2D’ was not declared in this scope
         glBindTexture(GL_TEXTURE_2D, mGLTexID);
                       ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:535:5: error: ‘glBindTexture’ was not declared in this scope
         glBindTexture(GL_TEXTURE_2D, mGLTexID);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:536:36: error: ‘GL_RGBA8’ was not declared in this scope
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                                        ^~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:536:36: note: suggested alternative: ‘NL_ARGMAX’
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                                        ^~~~~~~~
                                        NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:536:64: error: ‘GL_RGBA’ was not declared in this scope
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                                                                    ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:536:64: note: suggested alternative: ‘NL_ARGMAX’
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                                                                    ^~~~~~~
                                                                    NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:536:73: error: ‘GL_UNSIGNED_BYTE’ was not declared in this scope
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
                                                                             ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:536:5: error: ‘glTexImage2D’ was not declared in this scope
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
         ^~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:537:14: error: ‘GL_NEAREST’ was not declared in this scope
         TexParam(GL_NEAREST, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_2D);
                  ^~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:537:14: note: suggested alternative: ‘CLONE_PARENT’
         TexParam(GL_NEAREST, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_2D);
                  ^~~~~~~~~~
                  CLONE_PARENT
    /data/Applications/Imogen/src/Bitmap.cpp:537:38: error: ‘GL_CLAMP_TO_EDGE’ was not declared in this scope
         TexParam(GL_NEAREST, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_2D);
                                          ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:538:44: error: ‘GL_COLOR_ATTACHMENT0’ was not declared in this scope
         glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mGLTexID, 0);
                                                ^~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:538:5: error: ‘glFramebufferTexture2D’ was not declared in this scope
         glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, mGLTexID, 0);
         ^~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:545:40: error: ‘GL_DEPTH_COMPONENT24’ was not declared in this scope
             glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
                                            ^~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:545:80: error: ‘GL_DEPTH_COMPONENT’ was not declared in this scope
             glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
                                                                                    ^~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:545:100: error: ‘GL_FLOAT’ was not declared in this scope
             glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
                                                                                                        ^~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:545:100: note: suggested alternative: ‘MAXFLOAT’
             glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
                                                                                                        ^~~~~~~~
                                                                                                        MAXFLOAT
    /data/Applications/Imogen/src/Bitmap.cpp:547:48: error: ‘GL_DEPTH_ATTACHMENT’ was not declared in this scope
             glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, mGLTexDepth, 0);
                                                    ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:550:18: error: ‘GLenum’ does not name a type; did you mean ‘enum’?
         static const GLenum drawBuffers[] = {GL_COLOR_ATTACHMENT0};
                      ^~~~~~
                      enum
    /data/Applications/Imogen/src/Bitmap.cpp:551:26: error: ‘drawBuffers’ was not declared in this scope
         glDrawBuffers(sizeof(drawBuffers) / sizeof(GLenum), drawBuffers);
                              ^~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:551:26: note: suggested alternative: ‘InitBuffer’
         glDrawBuffers(sizeof(drawBuffers) / sizeof(GLenum), drawBuffers);
                              ^~~~~~~~~~~
                              InitBuffer
    /data/Applications/Imogen/src/Bitmap.cpp:551:48: error: ‘GLenum’ was not declared in this scope
         glDrawBuffers(sizeof(drawBuffers) / sizeof(GLenum), drawBuffers);
                                                    ^~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:551:48: note: suggested alternative: ‘enum’
         glDrawBuffers(sizeof(drawBuffers) / sizeof(GLenum), drawBuffers);
                                                    ^~~~~~
                                                    enum
    /data/Applications/Imogen/src/Bitmap.cpp:551:5: error: ‘glDrawBuffers’ was not declared in this scope
         glDrawBuffers(sizeof(drawBuffers) / sizeof(GLenum), drawBuffers);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:557:5: error: ‘GLint’ was not declared in this scope
         GLint last_viewport[4];
         ^~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:557:5: note: suggested alternative: ‘uint’
         GLint last_viewport[4];
         ^~~~~
         uint
    /data/Applications/Imogen/src/Bitmap.cpp:558:19: error: ‘GL_VIEWPORT’ was not declared in this scope
         glGetIntegerv(GL_VIEWPORT, last_viewport);
                       ^~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:558:32: error: ‘last_viewport’ was not declared in this scope
         glGetIntegerv(GL_VIEWPORT, last_viewport);
                                    ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:558:5: error: ‘glGetIntegerv’ was not declared in this scope
         glGetIntegerv(GL_VIEWPORT, last_viewport);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:558:5: note: suggested alternative: ‘getdate_err’
         glGetIntegerv(GL_VIEWPORT, last_viewport);
         ^~~~~~~~~~~~~
         getdate_err
    /data/Applications/Imogen/src/Bitmap.cpp:560:5: error: ‘glClearColor’ was not declared in this scope
         glClearColor(0, 0, 0, 0);
         ^~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:561:13: error: ‘GL_COLOR_BUFFER_BIT’ was not declared in this scope
         glClear(GL_COLOR_BUFFER_BIT | (depthBuffer ? GL_DEPTH_BUFFER_BIT : 0));
                 ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:561:50: error: ‘GL_DEPTH_BUFFER_BIT’ was not declared in this scope
         glClear(GL_COLOR_BUFFER_BIT | (depthBuffer ? GL_DEPTH_BUFFER_BIT : 0));
                                                      ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:561:5: error: ‘glClear’ was not declared in this scope
         glClear(GL_COLOR_BUFFER_BIT | (depthBuffer ? GL_DEPTH_BUFFER_BIT : 0));
         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:563:53: error: ‘GLsizei’ was not declared in this scope
         glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
                                                         ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:563:53: note: suggested alternative: ‘dysize’
         glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
                                                         ^~~~~~~
                                                         dysize
    /data/Applications/Imogen/src/Bitmap.cpp:563:5: error: ‘glViewport’ was not declared in this scope
         glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
         ^~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::InitCube(int, int)’:
    /data/Applications/Imogen/src/Bitmap.cpp:584:5: error: ‘glGenFramebuffers’ was not declared in this scope
         glGenFramebuffers(1, &mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:585:23: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
                           ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:585:5: error: ‘glBindFramebuffer’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:587:5: error: ‘glGenTextures’ was not declared in this scope
         glGenTextures(1, &mGLTexID);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:588:19: error: ‘GL_TEXTURE_CUBE_MAP’ was not declared in this scope
         glBindTexture(GL_TEXTURE_CUBE_MAP, mGLTexID);
                       ^~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:588:5: error: ‘glBindTexture’ was not declared in this scope
         glBindTexture(GL_TEXTURE_CUBE_MAP, mGLTexID);
         ^~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:594:26: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_X’ was not declared in this scope
                 glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i,
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:596:26: error: ‘GL_RGBA’ was not declared in this scope
                              GL_RGBA,
                              ^~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:596:26: note: suggested alternative: ‘NL_ARGMAX’
                              GL_RGBA,
                              ^~~~~~~
                              NL_ARGMAX
    /data/Applications/Imogen/src/Bitmap.cpp:601:26: error: ‘GL_UNSIGNED_BYTE’ was not declared in this scope
                              GL_UNSIGNED_BYTE,
                              ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:594:13: error: ‘glTexImage2D’ was not declared in this scope
                 glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i,
                 ^~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:606:14: error: ‘GL_LINEAR_MIPMAP_LINEAR’ was not declared in this scope
         TexParam(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_CUBE_MAP);
                  ^~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:606:39: error: ‘GL_LINEAR’ was not declared in this scope
         TexParam(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_CUBE_MAP);
                                           ^~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:606:39: note: suggested alternative: ‘__LINE__’
         TexParam(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_CUBE_MAP);
                                           ^~~~~~~~~
                                           __LINE__
    /data/Applications/Imogen/src/Bitmap.cpp:606:50: error: ‘GL_CLAMP_TO_EDGE’ was not declared in this scope
         TexParam(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_TEXTURE_CUBE_MAP);
                                                      ^~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:608:44: error: ‘GL_COLOR_ATTACHMENT0’ was not declared in this scope
         glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_CUBE_MAP_POSITIVE_X, mGLTexID, 0);
                                                ^~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:608:66: error: ‘GL_TEXTURE_CUBE_MAP_POSITIVE_X’ was not declared in this scope
         glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_CUBE_MAP_POSITIVE_X, mGLTexID, 0);
                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:608:5: error: ‘glFramebufferTexture2D’ was not declared in this scope
         glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_CUBE_MAP_POSITIVE_X, mGLTexID, 0);
         ^~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp: In member function ‘void RenderTarget::CheckFBO()’:
    /data/Applications/Imogen/src/Bitmap.cpp:615:23: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
                           ^~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:615:5: error: ‘glBindFramebuffer’ was not declared in this scope
         glBindFramebuffer(GL_FRAMEBUFFER, mFbo);
         ^~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:617:18: error: ‘glCheckFramebufferStatus’ was not declared in this scope
         int status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
                      ^~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:620:14: error: ‘GL_FRAMEBUFFER_COMPLETE’ was not declared in this scope
             case GL_FRAMEBUFFER_COMPLETE:
                  ^~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:624:14: error: ‘GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT’ was not declared in this scope
             case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:628:14: error: ‘GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT’ was not declared in this scope
             case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /data/Applications/Imogen/src/Bitmap.cpp:650:14: error: ‘GL_FRAMEBUFFER_UNSUPPORTED’ was not declared in this scope
             case GL_FRAMEBUFFER_UNSUPPORTED:
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
    make[2]: *** [CMakeFiles/Imogen.dir/build.make:63: CMakeFiles/Imogen.dir/src/Bitmap.cpp.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/Imogen.dir/all] Error 2
    make: *** [Makefile:84: all] Error 2
    
DirectXTex texture processing library

DirectXTex texture processing library http://go.microsoft.com/fwlink/?LinkId=248926 Copyright (c) Microsoft Corporation. November 8, 2021 This package

Nov 26, 2022
Basic framework for D3D11 init, model/texture loading, shader compilation and camera movement.

reed-framework Basic framework for D3D11 init, model/texture loading, camera movement, etc. Instructions: #include <framework.h> Link with framework.l

May 18, 2022
Advanced DXTc texture compression and transcoding library

crunch/crnlib v1.04 - Advanced DXTn texture compression library Copyright (C) 2010-2017 Richard Geldreich, Jr. and Binomial LLC http://binomial.info F

Nov 25, 2022
Wang Tiles Grid generator
Wang Tiles Grid generator

Wang Tiles Grid generator Quick Start The project is using nobuild build system. $ cc -o nobuild nobuild.c $ ./nobuild $ ./wang -live Goal Trying to g

Oct 1, 2022
Python binding for Grasp Pose Generator (pyGPG)
Python binding for Grasp Pose Generator (pyGPG)

Python binding for Grasp Pose Generator (pyGPG) Grasp Pose Generator is a cpp package that creat grasp candidates for 3D point clouds. This package bi

Jul 21, 2022
Ipsys Particle System Yey letS go, very cool particle system generator and fast renderer
Ipsys Particle System Yey letS go, very cool particle system generator and fast renderer

ipsys - Ipsys Particle System Yey letS go About Ipsys is a piece of software that focuces on running and displaying cool randomly generated particule

May 26, 2022
Dissecting the M1's GPU for 3D acceleration

Asahi GPU Research for an open source graphics stack for Apple M1. wrap Build with the included makefile make wrap.dylib, and insert in any Metal appl

Nov 26, 2022
nsfminer is an Ethash GPU mining application: with nsfminer you can mine every coin which relies on an Ethash Proof of Work.

nsfminer (no stinkin' fees) Ethereum (ethash) miner with OpenCL, CUDA and stratum support nsfminer is an Ethash GPU mining application: with nsfminer

Sep 2, 2022
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup

A minimalist and platform-agnostic interactive/real-time raytracer. Strong emphasis on simplicity, ease of use and almost no setup to get started with

Oct 5, 2022
2D GPU renderer for dynamic UIs
2D GPU renderer for dynamic UIs

vger vger is a vector graphics renderer which renders a limited set of primitives, but does so almost entirely on the GPU. Works on iOS and macOS. API

Nov 26, 2022
This is a openGL cube demo program. It was made as a tech demo using PVR_PSP2 Driver layer GPU libraries.

OpenGL Cube Demo using PVR_PSP2 Driver layer GPU libraries This is a openGL cube demo program. It was made as a tech demo using PVR_PSP2 Driver layer

Oct 31, 2021
What I'm doing here is insane GPU driver prototype for @GreenteaOS
What I'm doing here is insane GPU driver prototype for @GreenteaOS

NjRAA Work-in-progress Driver Foundation [nee-jee-ray] What I'm doing here is a GPU driver for Linux as a prototype for future graphics stack of the @

Jan 22, 2022
A Hydra-enabled GPU path tracer that supports MaterialX.
A Hydra-enabled GPU path tracer that supports MaterialX.

A Hydra-enabled GPU path tracer that supports MaterialX.

Nov 21, 2022
Legion Low Level Rendering Interface provides a graphics API agnostic rendering interface with minimal CPU overhead and low level access to verbose GPU operations.
Legion Low Level Rendering Interface provides a graphics API agnostic rendering interface with minimal CPU overhead and low level access to verbose GPU operations.

Legion-LLRI Legion-LLRI, or “Legion Low Level Rendering Interface” is a rendering API that aims to provide a graphics API agnostic approach to graphic

Aug 13, 2022
A low-level, cross-platform GPU library

vgpu is cross-platform low-level GPU library. Features Support for Windows, Linux, macOS. Modern rendering using Vulkan and Direct3D12. Dependencies U

Jul 28, 2022
GPU cloth with OpenGL Compute Shaders
 GPU cloth with OpenGL Compute Shaders

GPU cloth with OpenGL Compute Shaders This project in progress is a PBD cloth simulation accelerated and parallelized using OpenGL compute shaders. Fo

Jul 27, 2022
Optimized GPU noise functions and utilities

Optimized GPU noise functions and utilities

Dec 2, 2022
SMAA is a very efficient GPU-based MLAA implementation (DX9, DX10, DX11 and OpenGL)

SMAA is a very efficient GPU-based MLAA implementation (DX9, DX10, DX11 and OpenGL), capable of handling subpixel features seamlessly, and featuring an improved and advanced pattern detection & handling mechanism.

Nov 26, 2022
RDO BC1-7 GPU texture encoders

bc7enc - Fast BC1-7 GPU texture encoders with Rate Distortion Optimization (RDO) This repo contains fast texture encoders for BC1-7. All formats suppo

Nov 28, 2022