]> git.tdb.fi Git - libs/gl.git/log
libs/gl.git
10 years agoPrecision must always be specified for OpenGL ES
Mikko Rasa [Wed, 12 Nov 2014 00:01:25 +0000 (02:01 +0200)]
Precision must always be specified for OpenGL ES

10 years agoImprove legacy mode logic in ProgramBuilder
Mikko Rasa [Wed, 12 Nov 2014 00:01:05 +0000 (02:01 +0200)]
Improve legacy mode logic in ProgramBuilder

10 years agoEliminate conflicts with Windows headers
Mikko Rasa [Tue, 11 Nov 2014 23:49:39 +0000 (01:49 +0200)]
Eliminate conflicts with Windows headers

10 years agoSet the rendered flag before doing anything else
Mikko Rasa [Sat, 1 Nov 2014 00:39:06 +0000 (02:39 +0200)]
Set the rendered flag before doing anything else

Prevents recursion back into ShadowMap::setup_frame from the rendereable.

10 years agoRemove separate element_buffer from Renderer, get it from mesh instead
Mikko Rasa [Sat, 1 Nov 2014 00:26:34 +0000 (02:26 +0200)]
Remove separate element_buffer from Renderer, get it from mesh instead

10 years agoUse the same Renderer to render all faces of EnvironmentMap
Mikko Rasa [Sat, 1 Nov 2014 00:25:49 +0000 (02:25 +0200)]
Use the same Renderer to render all faces of EnvironmentMap

10 years agoAdd begin() method to make Renderer reusable
Mikko Rasa [Sat, 1 Nov 2014 00:20:27 +0000 (02:20 +0200)]
Add begin() method to make Renderer reusable

10 years agoState management improvements in Renderer
Mikko Rasa [Thu, 30 Oct 2014 08:21:18 +0000 (10:21 +0200)]
State management improvements in Renderer

Only update modelview matrix in standard_shdata if it actually changed.

Don't re-apply all shader data unless the program changed.

React to lighting changes caused by pop_state.

10 years agoRoll the various changed flags into a single mask
Mikko Rasa [Thu, 30 Oct 2014 08:19:13 +0000 (10:19 +0200)]
Roll the various changed flags into a single mask

10 years agoMove eye_obj matrices back out of the uniform block
Mikko Rasa [Mon, 27 Oct 2014 20:28:35 +0000 (22:28 +0200)]
Move eye_obj matrices back out of the uniform block

It turns out that updating the buffer for every draw call causes trouble
for drivers, especially OpenGL ES.  Projection matrix typically does not
change during a frame, so it can stay.

10 years agoCopy ProgramData::uniform_slots in copy constructor and operator=
Mikko Rasa [Tue, 21 Oct 2014 06:50:51 +0000 (09:50 +0300)]
Copy ProgramData::uniform_slots in copy constructor and operator=

10 years agoDisallow direct access to uniform array elements
Mikko Rasa [Tue, 21 Oct 2014 06:48:26 +0000 (09:48 +0300)]
Disallow direct access to uniform array elements

ProgramData can't track them correctly, and adding the support would be
too complex.  Uploading the entire array at once is more efficient anyway.

10 years agoClear matrices_loaded flag after resetting matrices
Mikko Rasa [Tue, 21 Oct 2014 06:44:55 +0000 (09:44 +0300)]
Clear matrices_loaded flag after resetting matrices

Fixes an issue where using legacy mode with a Pipeline would case the
matrices to be popped twice.

10 years agoOpenGL ES requires floating-point precision to be declard in shaders
Mikko Rasa [Mon, 20 Oct 2014 17:21:39 +0000 (20:21 +0300)]
OpenGL ES requires floating-point precision to be declard in shaders

10 years agoImprove documentation for a number of classes
Mikko Rasa [Mon, 20 Oct 2014 09:28:59 +0000 (12:28 +0300)]
Improve documentation for a number of classes

10 years agoAdd missing initialization
Mikko Rasa [Mon, 20 Oct 2014 08:59:22 +0000 (11:59 +0300)]
Add missing initialization

10 years agoDon't crash in bounding sphere generation if an object has a null mesh
Mikko Rasa [Mon, 20 Oct 2014 08:57:16 +0000 (11:57 +0300)]
Don't crash in bounding sphere generation if an object has a null mesh

10 years agoPrefer glMapBufferRange over glMapBuffer
Mikko Rasa [Mon, 20 Oct 2014 08:56:10 +0000 (11:56 +0300)]
Prefer glMapBufferRange over glMapBuffer

OpenGL ES does not have glMapBuffer.

10 years agoEmit warnings if an extension can't be fully supported
Mikko Rasa [Mon, 20 Oct 2014 08:16:55 +0000 (11:16 +0300)]
Emit warnings if an extension can't be fully supported

10 years agoThe GLSL texture function returns a float for shadow samplers
Mikko Rasa [Sun, 19 Oct 2014 23:33:59 +0000 (02:33 +0300)]
The GLSL texture function returns a float for shadow samplers

In contrast with the legacy shadow2D function, which returned vec4.

10 years agoDeprecate Renderer::escape() and replace it with end()
Mikko Rasa [Sun, 19 Oct 2014 16:59:36 +0000 (19:59 +0300)]
Deprecate Renderer::escape() and replace it with end()

I never used escape() for much anything, and now it's causing problems on
OpenGL ES by trying to apply state with no shader and consequently set
system matrices.  In the future I'll add a corresponding begin() call to
allow persistent Renderers.

10 years agoLegacy shader compatibility fixes for OpenGL ES
Mikko Rasa [Sun, 19 Oct 2014 16:28:24 +0000 (19:28 +0300)]
Legacy shader compatibility fixes for OpenGL ES

10 years agoUse texture() instead of texture2D() in non-legacy mode
Mikko Rasa [Sun, 19 Oct 2014 16:27:26 +0000 (19:27 +0300)]
Use texture() instead of texture2D() in non-legacy mode

Because the name of the diffuse texture uniform was changed to avoid
conflicting with the function, some changes in applications may be
necessary.

10 years agoDon't enable/disable textures on non-legacy units
Mikko Rasa [Sun, 19 Oct 2014 14:25:56 +0000 (17:25 +0300)]
Don't enable/disable textures on non-legacy units

10 years agoReplace Texturing::Attachment with a simple Texture pointer
Mikko Rasa [Fri, 17 Oct 2014 21:14:27 +0000 (00:14 +0300)]
Replace Texturing::Attachment with a simple Texture pointer

No point to have the struct now that TexEnv is gone.

10 years agoSupport OpenGL ES on Android
Mikko Rasa [Fri, 17 Oct 2014 20:49:10 +0000 (23:49 +0300)]
Support OpenGL ES on Android

Some features are still likely to be broken, but basic rendering works
at least.

10 years agoPrefer glDrawBuffers over glDrawBuffer
Mikko Rasa [Fri, 17 Oct 2014 20:09:44 +0000 (23:09 +0300)]
Prefer glDrawBuffers over glDrawBuffer

OpenGL ES does not have glDrawBuffer, so this logic change makes porting
a bit easier.

10 years agoOnly check against number of light units when binding Lighting
Mikko Rasa [Fri, 17 Oct 2014 19:28:51 +0000 (22:28 +0300)]
Only check against number of light units when binding Lighting

Feeding lights to shaders through ProgramData is not subject to
GL_MAX_LIGHTS, it makes sense to remove that limit from attaching them.

10 years agoTweak extension behavior on Radeon
Mikko Rasa [Fri, 17 Oct 2014 18:44:01 +0000 (21:44 +0300)]
Tweak extension behavior on Radeon

10 years agoDon't bind the default object if nothing was bound before
Mikko Rasa [Fri, 17 Oct 2014 18:40:28 +0000 (21:40 +0300)]
Don't bind the default object if nothing was bound before

10 years agoAllow applying a VertexArray in non-legacy mode
Mikko Rasa [Fri, 17 Oct 2014 18:30:08 +0000 (21:30 +0300)]
Allow applying a VertexArray in non-legacy mode

Mesh::bind now has consistent results whether or not vertex array objects
are available.  This is unlikely to be needed on full OpenGL, but is
necessary for OpenGL ES 2.0 support (ES 3.0 has VAOs).

10 years agoFallback to glDrawElements if EXT_draw_range_elements is unavailable
Mikko Rasa [Fri, 17 Oct 2014 11:18:27 +0000 (14:18 +0300)]
Fallback to glDrawElements if EXT_draw_range_elements is unavailable

10 years agoAdd facilities to disable extensions and force lower versions
Mikko Rasa [Fri, 17 Oct 2014 10:36:54 +0000 (13:36 +0300)]
Add facilities to disable extensions and force lower versions

Useful for testing some exotic combinations without actually having to
dig up suitable hardware.

10 years agoUpdate gl.xml to latest version
Mikko Rasa [Fri, 17 Oct 2014 08:47:38 +0000 (11:47 +0300)]
Update gl.xml to latest version

10 years agoInitialize camera matrices in constructor
Mikko Rasa [Thu, 16 Oct 2014 09:07:57 +0000 (12:07 +0300)]
Initialize camera matrices in constructor

10 years agoDelay loading matrices until they are needed
Mikko Rasa [Wed, 15 Oct 2014 21:12:32 +0000 (00:12 +0300)]
Delay loading matrices until they are needed

If all renderables use modern shaders, it's not necessary to touch the
system matrix stacks at all.  OpenGL ES 2.0 and OpenGL 3.0 core do not
even have system matrix stacks.

10 years agoRun a tighter ship with extensions
Mikko Rasa [Wed, 15 Oct 2014 16:49:47 +0000 (19:49 +0300)]
Run a tighter ship with extensions

10 years agoRemove a number of rarely used legacy features
Mikko Rasa [Wed, 15 Oct 2014 16:40:16 +0000 (19:40 +0300)]
Remove a number of rarely used legacy features

ShadowMap will now need shaders to work, but it was already broken in
fixed-function anyway due to using large texture unit numbers.  Since
all modern hardware supports shaders, even with free drivers, this is
unlikely to be an issue.

The removed pixel format GL_RED is used in ARB_texture_rg, but we don't
support that extension yet.

10 years agoEnhance the extension generator to support different APIs
Mikko Rasa [Wed, 15 Oct 2014 15:54:16 +0000 (18:54 +0300)]
Enhance the extension generator to support different APIs

10 years agoRefactor and optimize the extension generator script
Mikko Rasa [Wed, 15 Oct 2014 15:36:31 +0000 (18:36 +0300)]
Refactor and optimize the extension generator script

Overly short variable names have been expanded
parse_file was getting a bit unwieldy and has been split
getElementsByTagName is recursive and slow, replaced with custom function

10 years agoDon't leak AsyncUpdaters if Mesh async loading is aborted
Mikko Rasa [Tue, 30 Sep 2014 17:14:28 +0000 (20:14 +0300)]
Don't leak AsyncUpdaters if Mesh async loading is aborted

10 years agoRewrite ResourceManager internals for more scalability
Mikko Rasa [Tue, 30 Sep 2014 17:05:45 +0000 (20:05 +0300)]
Rewrite ResourceManager internals for more scalability

Since loading small resources can often take less than one frame,
especially with vsync enabled, the thread can now handle more than one
resource at once.  The code is also somewhat better structured for using
more than one thread in the future.

10 years agoBetter handling of unloaded textures
Mikko Rasa [Mon, 29 Sep 2014 21:07:20 +0000 (00:07 +0300)]
Better handling of unloaded textures

Since it's no longer guaranteed that calling ResourceManager::resource_used
will result in Resource::load being called, it's better to avoid the
binding logic entirely in the unloaded case.  In particular, parameters
must not be updated until the GL texture object has been created.

Generating an ID for the texture has been delayed to the last phase of
loading to further differentiate the loaded and unloaded states.

10 years agoAvoid segfaults when LoadingThread's resource is cleared
Mikko Rasa [Mon, 29 Sep 2014 20:35:16 +0000 (23:35 +0300)]
Avoid segfaults when LoadingThread's resource is cleared

10 years agoDelay opening the resource file until loading actually starts
Mikko Rasa [Mon, 29 Sep 2014 16:40:48 +0000 (19:40 +0300)]
Delay opening the resource file until loading actually starts

Opening it when the load is queued can cause large numbers of open files
to be created at once and dissipate slowly as the queue is processed.

10 years agoMinor fixes
Mikko Rasa [Sun, 28 Sep 2014 18:08:00 +0000 (21:08 +0300)]
Minor fixes

10 years agoFix TexGen unbinding
Mikko Rasa [Sun, 28 Sep 2014 18:07:33 +0000 (21:07 +0300)]
Fix TexGen unbinding

10 years agoExclude EnvironMap effect itself when creating the map
Mikko Rasa [Sun, 28 Sep 2014 18:02:28 +0000 (21:02 +0300)]
Exclude EnvironMap effect itself when creating the map

This avoids an unnecessary texture bind/unbind cycle if the EnvironmentMap
is contained within its own environment.

10 years agoPut transform matrices into a uniform block too
Mikko Rasa [Sun, 28 Sep 2014 17:54:56 +0000 (20:54 +0300)]
Put transform matrices into a uniform block too

I'm fairly certain the glBufferSubData call required to update the block
contents is no slower than the glUniformMatrix* calls to set the uniforms
directly.

10 years agoDon't consider the current buffer in deciding whether to bind BufferRange
Mikko Rasa [Sun, 28 Sep 2014 17:52:17 +0000 (20:52 +0300)]
Don't consider the current buffer in deciding whether to bind BufferRange

glBindBufferRange should only be called if the buffer range bound to that
index was changed.  The buffer binding gets changed as a side-effect, but
should not factor into the decision.

10 years agoRework ProgramData to do less unnecessary work
Mikko Rasa [Sun, 28 Sep 2014 16:58:08 +0000 (19:58 +0300)]
Rework ProgramData to do less unnecessary work

Changes are now tracked per-uniform, allowing more updates to be skipped.
The buffers used in a program are cached, making the no-changes case
faster.

Additionally, Program now creates a UniformBlockInfo struct for the
default uniform.  The program-wide uniform layout hash has been repurposed
to cover the entire program.

10 years agoTighten checks in UniformBlock
Mikko Rasa [Sun, 28 Sep 2014 16:45:01 +0000 (19:45 +0300)]
Tighten checks in UniformBlock

A single UniformBlock can only be a default block or a named block, not
any strange mixture of the two.

10 years agoIntroduce a typedef for uniform layout hashes in Program
Mikko Rasa [Sun, 28 Sep 2014 15:29:30 +0000 (18:29 +0300)]
Introduce a typedef for uniform layout hashes in Program

10 years agoAdjust the desert pillars demo to recent changes
Mikko Rasa [Sat, 27 Sep 2014 15:43:02 +0000 (18:43 +0300)]
Adjust the desert pillars demo to recent changes

Also decrease the cube's shininess from 150 to 120 for compatibility with
older OpenGL versions.

10 years agoMove the reflectivity parameter to material
Mikko Rasa [Sat, 27 Sep 2014 15:42:35 +0000 (18:42 +0300)]
Move the reflectivity parameter to material

Logically it belongs there, even if OpenGL has no fixed-function support
for it.

10 years agoRectify some omissions in ProgramBuilder builtin variables
Mikko Rasa [Sat, 27 Sep 2014 10:46:48 +0000 (13:46 +0300)]
Rectify some omissions in ProgramBuilder builtin variables

10 years agoFix uniform stride assignments
Mikko Rasa [Sat, 27 Sep 2014 10:44:51 +0000 (13:44 +0300)]
Fix uniform stride assignments

10 years agoFix the resource disassociation loop in ~ResourceManager
Mikko Rasa [Fri, 26 Sep 2014 15:01:40 +0000 (18:01 +0300)]
Fix the resource disassociation loop in ~ResourceManager

10 years agoUnbind things if they are deleted while current
Mikko Rasa [Fri, 26 Sep 2014 15:00:18 +0000 (18:00 +0300)]
Unbind things if they are deleted while current

Failing to do so can lead to all sorts of stale-state issues, especially
if a newly created thing happens to get the exact same address as the
just deleted one.

10 years agoUse uniform blocks in generated shaders if supported
Mikko Rasa [Fri, 26 Sep 2014 14:35:51 +0000 (17:35 +0300)]
Use uniform blocks in generated shaders if supported

10 years agoInitialize StandardVariables::skylight
Mikko Rasa [Fri, 26 Sep 2014 10:30:39 +0000 (13:30 +0300)]
Initialize StandardVariables::skylight

10 years agoEmit separate declarations for struct types
Mikko Rasa [Fri, 26 Sep 2014 10:19:53 +0000 (13:19 +0300)]
Emit separate declarations for struct types

I'm going to add uniform block support shortly and structs can't be
declared inside blocks.

10 years agoDeal with hash collisions in assigning uniform block bind points
Mikko Rasa [Fri, 26 Sep 2014 10:06:52 +0000 (13:06 +0300)]
Deal with hash collisions in assigning uniform block bind points

10 years agoImprove bounding sphere handling in Object
Mikko Rasa [Wed, 24 Sep 2014 17:36:33 +0000 (20:36 +0300)]
Improve bounding sphere handling in Object

10 years agoUpdate Object's bounding sphere when mesh is loaded
Mikko Rasa [Wed, 24 Sep 2014 17:34:24 +0000 (20:34 +0300)]
Update Object's bounding sphere when mesh is loaded

10 years agoAdd a ResourceWatcher interface
Mikko Rasa [Wed, 24 Sep 2014 12:49:41 +0000 (15:49 +0300)]
Add a ResourceWatcher interface

10 years agoEnable asynchronous loading of Meshes
Mikko Rasa [Tue, 23 Sep 2014 21:08:21 +0000 (00:08 +0300)]
Enable asynchronous loading of Meshes

This currently causes object bounding spheres to be incorrect when using
managed meshes.  The situation will be rectified shortly.

10 years agoAdd an asynchronous update interface to Bufferable
Mikko Rasa [Tue, 23 Sep 2014 20:23:14 +0000 (23:23 +0300)]
Add an asynchronous update interface to Bufferable

10 years agoRefactor the internal interface of Bufferable a bit
Mikko Rasa [Tue, 23 Sep 2014 17:11:16 +0000 (20:11 +0300)]
Refactor the internal interface of Bufferable a bit

10 years agoMiscellaneous fixes to ResourceManager
Mikko Rasa [Thu, 18 Sep 2014 17:42:20 +0000 (20:42 +0300)]
Miscellaneous fixes to ResourceManager

10 years agoSome fixes to VAO management
Mikko Rasa [Tue, 16 Sep 2014 07:31:36 +0000 (10:31 +0300)]
Some fixes to VAO management

10 years agoMinor adjustments
Mikko Rasa [Mon, 15 Sep 2014 10:35:11 +0000 (13:35 +0300)]
Minor adjustments

10 years agoAdd a hidden option to disable progress meter
Mikko Rasa [Mon, 15 Sep 2014 10:34:21 +0000 (13:34 +0300)]
Add a hidden option to disable progress meter

Intended for scripts that call the MSP export operators multiple times.

10 years agoAdd an object property for inheriting the specified technique
Mikko Rasa [Mon, 15 Sep 2014 10:23:11 +0000 (13:23 +0300)]
Add an object property for inheriting the specified technique

This allows using object-specific textures while still sharing material
and shaders.

10 years agoUse image path as texture identifier if available
Mikko Rasa [Mon, 15 Sep 2014 09:43:28 +0000 (12:43 +0300)]
Use image path as texture identifier if available

This is more likely to be correct in common resource loading setups.

10 years agoTake material diffuse intensity into account
Mikko Rasa [Mon, 15 Sep 2014 08:24:46 +0000 (11:24 +0300)]
Take material diffuse intensity into account

10 years agoDisplay overall progress when exporting scenes
Mikko Rasa [Mon, 15 Sep 2014 08:24:11 +0000 (11:24 +0300)]
Display overall progress when exporting scenes

10 years agoImplement automatic unloading when a total size limit is exceeded
Mikko Rasa [Mon, 8 Sep 2014 20:50:35 +0000 (23:50 +0300)]
Implement automatic unloading when a total size limit is exceeded

10 years agoImplement automatic resource unloading based on age
Mikko Rasa [Mon, 8 Sep 2014 18:28:22 +0000 (21:28 +0300)]
Implement automatic resource unloading based on age

10 years agoSet dirty_params when unloading textures
Mikko Rasa [Mon, 8 Sep 2014 17:06:37 +0000 (20:06 +0300)]
Set dirty_params when unloading textures

This ensures that things like MIN_FILTER get set correctly when it is
reloaded.

10 years agoImplement manual loading policy and async flag
Mikko Rasa [Sun, 7 Sep 2014 17:16:36 +0000 (20:16 +0300)]
Implement manual loading policy and async flag

10 years agoThrow an exception if Resource::load did not create an AsyncLoader
Mikko Rasa [Sat, 30 Aug 2014 22:38:35 +0000 (01:38 +0300)]
Throw an exception if Resource::load did not create an AsyncLoader

This is only a safeguard against programming errors and should never be
hit in normal use.

10 years agoDissolve the association to resources when ResourceManager is destroyed
Mikko Rasa [Sat, 30 Aug 2014 22:37:36 +0000 (01:37 +0300)]
Dissolve the association to resources when ResourceManager is destroyed

10 years agoEnable resource management on Texture2D
Mikko Rasa [Sat, 23 Aug 2014 16:12:48 +0000 (19:12 +0300)]
Enable resource management on Texture2D

10 years agoFoundation for a resource management system
Mikko Rasa [Sun, 17 Aug 2014 19:07:50 +0000 (22:07 +0300)]
Foundation for a resource management system

10 years agoAdd memory-mapping functions for Buffer
Mikko Rasa [Sun, 17 Aug 2014 15:23:30 +0000 (18:23 +0300)]
Add memory-mapping functions for Buffer

10 years agoMake the viewer capable of viewing scenes
Mikko Rasa [Sun, 17 Aug 2014 14:44:10 +0000 (17:44 +0300)]
Make the viewer capable of viewing scenes

10 years agoAdd a Loader for Scene, and a matching Blender exporter
Mikko Rasa [Sun, 17 Aug 2014 14:43:41 +0000 (17:43 +0300)]
Add a Loader for Scene, and a matching Blender exporter

10 years agoSet MeshExporter default values to match those in the operator
Mikko Rasa [Sat, 16 Aug 2014 22:46:27 +0000 (01:46 +0300)]
Set MeshExporter default values to match those in the operator

10 years agoFix line exporting
Mikko Rasa [Sat, 16 Aug 2014 22:45:54 +0000 (01:45 +0300)]
Fix line exporting

10 years agoUse a renderer in the viewer
Mikko Rasa [Sat, 16 Aug 2014 09:53:37 +0000 (12:53 +0300)]
Use a renderer in the viewer

Some renderables using more sophisticated features won't even render
properly without one.

10 years agoRework loading in viewer
Mikko Rasa [Sat, 16 Aug 2014 09:39:16 +0000 (12:39 +0300)]
Rework loading in viewer

It can now load external resources, and adding new types of renderables
in the future is easier.

10 years agoSupport hemispherical skylight in ProgramBuilder
Mikko Rasa [Sun, 13 Jul 2014 13:10:59 +0000 (16:10 +0300)]
Support hemispherical skylight in ProgramBuilder

OpenGL's fixed-function pipeline does not have any similar feature, so
this can't be supported without shaders.

10 years agoMove extension requirements from ProgramData to UniformBlock
Mikko Rasa [Mon, 16 Jun 2014 21:02:03 +0000 (00:02 +0300)]
Move extension requirements from ProgramData to UniformBlock

ProgramData no longer manipulates GL directly, and it's used in places
like Renderer and Material.  This changes allows those things to be used
without shader support.

10 years agoMake older gcc versions happy
Mikko Rasa [Mon, 16 Jun 2014 20:08:26 +0000 (23:08 +0300)]
Make older gcc versions happy

10 years agoUse GL_VERSION_x_y to guard the enums for promoted extensions
Mikko Rasa [Mon, 16 Jun 2014 20:06:01 +0000 (23:06 +0300)]
Use GL_VERSION_x_y to guard the enums for promoted extensions

The core names for enums are used in headers, and older systems might
have the extension present but too old core version.

10 years agoRearrange ProgramBuilder's standard variables
Mikko Rasa [Tue, 20 May 2014 22:09:49 +0000 (01:09 +0300)]
Rearrange ProgramBuilder's standard variables

The rgb_light_foo names were getting a bit stupid, and the hierarchy also
makes more sense this way.  The use of gl_FrontLightProduct was dropped
as too cumbersome to maintain.  The future is with modern shaders anyway.

Texture now only affects ambient and diffuse colors, not specular.  There
will likely be support for a separate specular map in the future.

10 years agoTexUnit's constructor shouldn't be public
Mikko Rasa [Fri, 16 May 2014 18:39:46 +0000 (21:39 +0300)]
TexUnit's constructor shouldn't be public

10 years agoImprove interface documentation a bit
Mikko Rasa [Fri, 16 May 2014 18:35:30 +0000 (21:35 +0300)]
Improve interface documentation a bit

10 years agoAdd support for array and multiple lights in generated shaders
Mikko Rasa [Fri, 16 May 2014 17:17:32 +0000 (20:17 +0300)]
Add support for array and multiple lights in generated shaders