Code Monkey home page Code Monkey logo

imogen's Introduction

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 ocornut/imgui#1902 (comment)

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

imogen's People

Contributors

cedricguillemet avatar jarikomppa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imogen's Issues

Suggestion: Vector Nodes

node list
*vector integer2
*vector integer3
*vector integer4
*vector float2
*vector float3
*vector float4
*crossProduct
*dotProduct
*length
*normalize
*distance

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!

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.

Crazy idea here

Would it be possible to integrate this with shadertoy? It would be ridiculously awesome

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.

Node lister

Few things about node lister.

Did not found a way to remove it without creating a node, escape key should hide it again?

Also to create it, using a key as well as button is generally nice (space key is common in many softwares).

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.

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

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

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?).

Suggestion: Conditional node

node list
*equal (==)
*not equal (!=)
*greater than (>)
*greater than or equal (>=)
*less than (<)
*less than or equal (<=)

Suggestion: Constant Nodes

To define static values for your graph

node list
*float
*float2
*float3
*float4
*integer
*integer2
*integer3
*integer4
*boolean

Instead of separate nodes, One single node called constant with drop down list to select data types would be great.

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]

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.

Linux/Macos port

Everything is coded with multiplatform in mind (mostly). And I compiled the project on a virtualized Ubuntu. It was a couple months ago and a Linux port (a solid one) would be great.
Kudos if there is a possibility to produce binaries(packages) from a bot.

Suggestion: function nodes

node list
*absolute - return absolute value
*acos - inverse of cos
*asin - inverse of sin
*atan - inverse of tan
*angle - angle between two nodes
*ceil - return the smallest integer value that is not less than the argument
*floor - return the largest integer value that is not greater than the argument
*trunc - return the largest whole value that is not greater than the argument
*clamp - clamps to the min-max range, If number is outside the range, the return value is clamped to min or max, otherwise.
*sqrt - square root

[Web Edition]Support links

In web version, update function void OpenShellURL(const std::string& url) to open link in a new browser tab.

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?

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.

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:

[unfa@unfa-desktop 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
[unfa@unfa-desktop 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

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. ^^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.