]>
git.tdb.fi Git - libs/gl.git/log
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.
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.
Mikko Rasa [Mon, 15 Sep 2014 08:24:46 +0000 (11:24 +0300)]
Take material diffuse intensity into account
Mikko Rasa [Mon, 15 Sep 2014 08:24:11 +0000 (11:24 +0300)]
Display overall progress when exporting scenes
Mikko Rasa [Mon, 8 Sep 2014 20:50:35 +0000 (23:50 +0300)]
Implement automatic unloading when a total size limit is exceeded
Mikko Rasa [Mon, 8 Sep 2014 18:28:22 +0000 (21:28 +0300)]
Implement automatic resource unloading based on age
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.
Mikko Rasa [Sun, 7 Sep 2014 17:16:36 +0000 (20:16 +0300)]
Implement manual loading policy and async flag
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.
Mikko Rasa [Sat, 30 Aug 2014 22:37:36 +0000 (01:37 +0300)]
Dissolve the association to resources when ResourceManager is destroyed
Mikko Rasa [Sat, 23 Aug 2014 16:12:48 +0000 (19:12 +0300)]
Enable resource management on Texture2D
Mikko Rasa [Sun, 17 Aug 2014 19:07:50 +0000 (22:07 +0300)]
Foundation for a resource management system
Mikko Rasa [Sun, 17 Aug 2014 15:23:30 +0000 (18:23 +0300)]
Add memory-mapping functions for Buffer
Mikko Rasa [Sun, 17 Aug 2014 14:44:10 +0000 (17:44 +0300)]
Make the viewer capable of viewing scenes
Mikko Rasa [Sun, 17 Aug 2014 14:43:41 +0000 (17:43 +0300)]
Add a Loader for Scene, and a matching Blender exporter
Mikko Rasa [Sat, 16 Aug 2014 22:46:27 +0000 (01:46 +0300)]
Set MeshExporter default values to match those in the operator
Mikko Rasa [Sat, 16 Aug 2014 22:45:54 +0000 (01:45 +0300)]
Fix line exporting
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.
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.
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.
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.
Mikko Rasa [Mon, 16 Jun 2014 20:08:26 +0000 (23:08 +0300)]
Make older gcc versions happy
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.
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.
Mikko Rasa [Fri, 16 May 2014 18:39:46 +0000 (21:39 +0300)]
TexUnit's constructor shouldn't be public
Mikko Rasa [Fri, 16 May 2014 18:35:30 +0000 (21:35 +0300)]
Improve interface documentation a bit
Mikko Rasa [Fri, 16 May 2014 17:17:32 +0000 (20:17 +0300)]
Add support for array and multiple lights in generated shaders
Mikko Rasa [Thu, 15 May 2014 21:59:26 +0000 (00:59 +0300)]
Generalize shader interface handling
Mikko Rasa [Thu, 15 May 2014 09:00:01 +0000 (12:00 +0300)]
Refactor certain variable operations into functions
Mikko Rasa [Tue, 13 May 2014 16:43:31 +0000 (19:43 +0300)]
Inline variables which are simple aliases, even if not optimizing
This fixes another problem with unoptimized legacy shaders, making them
work properly again.
Mikko Rasa [Tue, 13 May 2014 09:21:28 +0000 (12:21 +0300)]
Tweak goal variable handling in ProgramBuilder
All variables now have types, and goal variables are recognized by the
lack of references to them. This solves a problem where non-optimized
legacy shaders would emit an assignment to frag_color without declaring
it first.
Mikko Rasa [Thu, 8 May 2014 18:00:26 +0000 (21:00 +0300)]
Pass the sRGB flag when loading a Texture2D from an image file
Mikko Rasa [Thu, 8 May 2014 17:55:53 +0000 (20:55 +0300)]
Don't store ProgramData in Lighting
It can't be kept up to date automatically, as Lighting can't track the
individual Lights' state. It's also hard to make optimize out unnecessary
updates. It's typically computed very few times per frame anyway, so the
performance hit is negligible (as opposed to something like Material,
which might get used hundreds or thousands of times per frame).
Mikko Rasa [Tue, 6 May 2014 21:17:26 +0000 (00:17 +0300)]
Minor tweaks to the Blender exporter
Mikko Rasa [Tue, 6 May 2014 21:13:35 +0000 (00:13 +0300)]
Fix exporting meshes without UV coordinates
Mikko Rasa [Tue, 6 May 2014 21:02:39 +0000 (00:02 +0300)]
More options for exporting techniques
Mikko Rasa [Tue, 6 May 2014 20:43:22 +0000 (23:43 +0300)]
Add an object property to control compound exporting
Mikko Rasa [Mon, 5 May 2014 19:58:13 +0000 (22:58 +0300)]
Add an option to export a separate mesh file when exporting an object
Mikko Rasa [Mon, 5 May 2014 19:27:50 +0000 (22:27 +0300)]
Restore the progress bar in the exporter
Mikko Rasa [Mon, 5 May 2014 19:27:07 +0000 (22:27 +0300)]
Some fixes to UV coordinate exporting
Mikko Rasa [Mon, 5 May 2014 18:49:57 +0000 (21:49 +0300)]
Refactor object exporter to a separate class
Mikko Rasa [Tue, 29 Apr 2014 05:28:27 +0000 (08:28 +0300)]
Support linear to sRGB conversion when loading materials and textures
Mikko Rasa [Mon, 21 Apr 2014 07:40:17 +0000 (10:40 +0300)]
Use make_tex's wrap parameter in makefont.py
Mikko Rasa [Mon, 21 Apr 2014 07:36:17 +0000 (10:36 +0300)]
Move sRGB formulas to color.h
Mikko Rasa [Sun, 20 Apr 2014 09:44:05 +0000 (12:44 +0300)]
Add a resource collection class
It's annoying to have to implement the same collection everywhere,
especially loading textures from image files.
Mikko Rasa [Sun, 12 Jan 2014 12:14:31 +0000 (14:14 +0200)]
Add viewport support to Framebuffer
Mikko Rasa [Sun, 12 Jan 2014 12:11:59 +0000 (14:11 +0200)]
Initialize slot even when unused to silence optimizer warnings
Mikko Rasa [Sun, 5 Jan 2014 11:50:54 +0000 (13:50 +0200)]
Tweak some ProgramBuilder variables
Mikko Rasa [Sun, 5 Jan 2014 11:47:10 +0000 (13:47 +0200)]
Support sRGB pixelformats through GL_EXT_texture_sRGB
Mikko Rasa [Sun, 5 Jan 2014 11:46:14 +0000 (13:46 +0200)]
Fix component handling error in Color
Mikko Rasa [Sun, 5 Jan 2014 10:51:29 +0000 (12:51 +0200)]
Use base pixelformat when loading texture data
Mikko Rasa [Sat, 28 Dec 2013 15:14:07 +0000 (17:14 +0200)]
Add gamma correction and sRGB conversion support to ColorCurve
Mikko Rasa [Sat, 28 Dec 2013 15:10:36 +0000 (17:10 +0200)]
Add basic support for 1D textures
Mikko Rasa [Mon, 23 Dec 2013 16:22:19 +0000 (18:22 +0200)]
Convert desertpillars to use the new shader customization
Mikko Rasa [Mon, 23 Dec 2013 16:14:13 +0000 (18:14 +0200)]
More flexible system for customizing generated shaders
Any standard variable can now be overridden, and new ones added. It's
still somewhat fragile concerning variable ordering and some other things,
but it works when used correctly.
Mikko Rasa [Sun, 22 Dec 2013 00:15:06 +0000 (02:15 +0200)]
Simplify VAO setup code
Previously buffer binding semantics caused complications, as index buffer
was unbound while a mesh was bound so batches couldn't be updated. Now
that buffers behave better with bounds meshes, batches can take care of
themselves again.
Triggering the setup from bind() instead of draw() gets rid of another
bunch of complications, since it will only be called when the VAO is going
to be actually used.
Mikko Rasa [Sat, 21 Dec 2013 16:58:31 +0000 (18:58 +0200)]
Avoid segfault for trying to refresh a Mesh with no buffers
Mikko Rasa [Sat, 21 Dec 2013 16:57:41 +0000 (18:57 +0200)]
Throw an exception if trying to draw a Mesh with a different Mesh bound
Mikko Rasa [Sat, 21 Dec 2013 16:51:47 +0000 (18:51 +0200)]
Enforce unbinding as well as binding buffers
Mikko Rasa [Sat, 21 Dec 2013 11:30:02 +0000 (13:30 +0200)]
Present Mesh's index buffer as current while the Mesh is bound
This simplifies the internal update operations.
Mikko Rasa [Sat, 21 Dec 2013 11:20:21 +0000 (13:20 +0200)]
Use RAII binders in place of manual binding
Mikko Rasa [Sat, 21 Dec 2013 09:59:28 +0000 (11:59 +0200)]
BufferAlias is now obsolete
Mikko Rasa [Sat, 21 Dec 2013 09:58:57 +0000 (11:58 +0200)]
Add support for multiple binding points in the RAII binders
Mikko Rasa [Sat, 21 Dec 2013 09:36:40 +0000 (11:36 +0200)]
Rewrite Bind as two different classes
Boolean flag parameters are not too clear without seeing the declaration.
This new implementation also doesn't use dynamic allocation.
Mikko Rasa [Sat, 21 Dec 2013 09:17:17 +0000 (11:17 +0200)]
Make desertpillars compatible with the modernization changes
Mikko Rasa [Thu, 19 Dec 2013 21:15:36 +0000 (23:15 +0200)]
Escape from the renderer before applying postprocessors
Mikko Rasa [Thu, 19 Dec 2013 21:10:15 +0000 (23:10 +0200)]
Automatically determine texture units for effects
At the moment this breaks such effects in fixed-function mode on platforms
that support shader-only texture units. Will devise a fix later.
Mikko Rasa [Thu, 19 Dec 2013 21:03:49 +0000 (23:03 +0200)]
Add missing initializer
Mikko Rasa [Thu, 19 Dec 2013 20:40:52 +0000 (22:40 +0200)]
Add an overload of bind_attribute that takes a VertexComponent
Mikko Rasa [Tue, 17 Dec 2013 20:13:32 +0000 (22:13 +0200)]
Add missing #include
Mikko Rasa [Mon, 16 Dec 2013 20:25:49 +0000 (22:25 +0200)]
Add shd_eye_matrix to ShadowMap's shdata
Mikko Rasa [Mon, 16 Dec 2013 20:24:55 +0000 (22:24 +0200)]
Use vector and matrix operations in ShadowMap
Mikko Rasa [Sun, 15 Dec 2013 23:26:55 +0000 (01:26 +0200)]
Integrate modern shaders and VAOs with Renderer
Mikko Rasa [Sun, 15 Dec 2013 23:23:50 +0000 (01:23 +0200)]
The Scope enum has no need to be public
Mikko Rasa [Sun, 15 Dec 2013 23:22:54 +0000 (01:22 +0200)]
Support generating modern, GLSL 1.30+ shaders with ProgramBuilder
Mikko Rasa [Sun, 15 Dec 2013 23:16:31 +0000 (01:16 +0200)]
Create ProgramData for materials and lights
Mikko Rasa [Sun, 15 Dec 2013 23:05:29 +0000 (01:05 +0200)]
Add interface for glBindFragDataLocation, required for modern shaders
Mikko Rasa [Sun, 15 Dec 2013 23:04:48 +0000 (01:04 +0200)]
Remove VertexArray's own dirty member now that it's a Bufferable
Mikko Rasa [Sun, 15 Dec 2013 23:03:26 +0000 (01:03 +0200)]
Add vertex array object support to Mesh
Renderer integration to be added soon.
Mikko Rasa [Sun, 15 Dec 2013 18:03:20 +0000 (20:03 +0200)]
Explicitly bind buffer in Bufferable::update_buffer
This reduces unnecessary bind/unbind thrashing if the buffer needs to be
resized.
Mikko Rasa [Sun, 15 Dec 2013 18:02:46 +0000 (20:02 +0200)]
Add some accessors to Buffer
Mikko Rasa [Sat, 30 Nov 2013 18:15:29 +0000 (20:15 +0200)]
Add a public refresh function to Bufferable
This is needed soon for VAO support.
Mikko Rasa [Sat, 30 Nov 2013 16:56:42 +0000 (18:56 +0200)]
Tweak buffer logic a bit in Batch::draw
Excplicitly binding the buffer first avoids unnecessary implicit binds in
the buffer update code.
Mikko Rasa [Sat, 30 Nov 2013 16:55:10 +0000 (18:55 +0200)]
Convert VertexArray into a Bufferable
Mikko Rasa [Fri, 29 Nov 2013 09:50:42 +0000 (11:50 +0200)]
Use renderer for lighting in the shaders demo
Mikko Rasa [Fri, 29 Nov 2013 09:35:47 +0000 (11:35 +0200)]
Don't bother with clearing winding test
Why was that even there? Winding test is stored as part of Renderer's
State, so it will be cleared by a pop.
Mikko Rasa [Fri, 29 Nov 2013 08:46:27 +0000 (10:46 +0200)]
Remove vertex array tracking from Renderer
It's unnecessary because VertexArray has its own state tracking and never
needs to be unbound.
Mikko Rasa [Thu, 28 Nov 2013 20:21:59 +0000 (22:21 +0200)]
Move vertex buffer management from VertexArray to Mesh
It was getting in the way of implementing vertex array objects.
Mikko Rasa [Thu, 28 Nov 2013 12:51:23 +0000 (14:51 +0200)]
Restore old samples value if create_targets fails
An application could use try-catch to check if a certain level of
multisampling is available, and leaving samples to that value would
interfere with later operations.
Mikko Rasa [Thu, 28 Nov 2013 12:42:58 +0000 (14:42 +0200)]
Remove get(int *)
By contrast to the previous commit, this was rather useless and not
actually used anywhere in the code.
Mikko Rasa [Thu, 28 Nov 2013 12:39:49 +0000 (14:39 +0200)]
Use wrappers for single-value glGet* calls
Having to create temporary stack variables just for passing in the return
pointer is quite annoying.
Mikko Rasa [Thu, 28 Nov 2013 12:24:11 +0000 (14:24 +0200)]
Check range when attaching Lights to a Lighting
Mikko Rasa [Thu, 28 Nov 2013 12:23:30 +0000 (14:23 +0200)]
Fix some incorrect whitespace
Mikko Rasa [Thu, 28 Nov 2013 12:14:56 +0000 (14:14 +0200)]
Better state tracking for bound objects
Mikko Rasa [Thu, 28 Nov 2013 11:11:35 +0000 (13:11 +0200)]
Give TexEnv a default object since it can't be disabled
Mikko Rasa [Thu, 28 Nov 2013 00:02:49 +0000 (02:02 +0200)]
Rewrite light binding to match textures
Both have multiple multiple parallel bind points, so it makes sense they
behave in the same way.
Mikko Rasa [Wed, 27 Nov 2013 21:23:33 +0000 (23:23 +0200)]
Always bind textures in a specific texture unit
This eliminates one level of global state, simplifying the API and
offering new optimization possibilities. Since single-texturing is a
common use case, the parameterless bind/unbind functions have been left
in but changed to operate on unit 0.
Mikko Rasa [Wed, 27 Nov 2013 10:05:01 +0000 (12:05 +0200)]
Remove ambient color from Light
It doesn't make much sense, as there's already the global ambient color in
Lighting. I haven't ever used it either, so remove directly instead of
deprecating.
Mikko Rasa [Wed, 27 Nov 2013 09:56:01 +0000 (11:56 +0200)]
Remove some deprecated stuff
Mikko Rasa [Wed, 27 Nov 2013 09:06:38 +0000 (11:06 +0200)]
Convert Matrix to use floats
This halves matrix storage size to 64 bytes and reduces overhead from
conversions at certain places. If an application desires greater
precision, it can use the LinAl::Matrix and Geometry::AffineTransformation
classes internally.