Subversion Repository Public Repository


This repository has no backups
This repository's network speed is throttled to 100KB/sec

Commits for Divide-Framework/trunk/Source Code/Platform/Video/Textures/Headers/Texture.h

Diff revisions: vs.
Revision Author Commited Message
758 Diff Diff IonutCava picture IonutCava Tue 02 Aug, 2016 16:05:09 +0000

- Added a cross platform method of naming threads (helps with debugging)
- Reduced dependency on VAR.dvd_drawID in shaders.
- Work on Single/Multi thread toggle for GFX resource loading (crashes, bugs, etc)
- Fix a bug in TaskPool where task states were never actually updated properly
- Change threadpool implementation to use std::thread instead of boost::thread

750 Diff Diff IonutCava picture IonutCava Thu 07 Jul, 2016 16:02:03 +0000

- Static analysis based fixes and improvements

749 Diff Diff IonutCava picture IonutCava Mon 04 Jul, 2016 16:01:34 +0000

- Added initial environment mapping code:
— Allow adding, per scene, of multiple environment probes that generate cube map reflections
— Support 2 types of probes: infinite (such as sky only probes) and local. Local probes use an AABB that will later be used for parallax correction
— Probes are held in a scene specific pool, can be updated at different rates and their results can be passed on to materials (if materials don’t need specific reflection systems such as for water or mirrors)
- ToDo:
— Blend between probes (currently, only the closes one is selected)
— Reduce VRAM usage
— Set as fallback for screen space reflections

722 Diff Diff IonutCava picture IonutCava Thu 09 Jun, 2016 16:15:33 +0000

- Restructure RenderTarget system:
— Separate attachments, use an attachment pool, use draw descriptors, require explicit information for RT calls, etc

709 Diff Diff IonutCava picture IonutCava Thu 19 May, 2016 16:21:46 +0000

- Massive rewrite of the resource system:
— ResourceCache now uses a map of weak pointers and passes shared pointers to the call point of CreateResource
— RemoveResource is no longer needed, but resource based smart pointers use a custom deleter that calls unload()
— Keep a shared_ptr of the resource in the entity that needs it and pass shared_ptr references from getter methods
-— All of this removed the need for calls to RemoveResource, REGISTER_TRACKED_DEPENDENCY and UNREGISTER_TRACKED_DEPENDENCY reducing the number of mutex locks and atomic exchanges
- Singleton cleanup:
— Removed ShaderManager singleton and merged it’s data and responsibilities in static methods in both ShaderProgram and Shader classes.
Explanation: Due to the complex interdependency chains in the system, copying, updating, tracking the cache in a thread safe way became a lot more slower than a straight forward smart pointer based implementation. (e.g. scene graph nodes have 3d objects and material instances, 3d objects have materials, materials have textures and shaders, etc)

692 Diff Diff IonutCava picture IonutCava Wed 27 Apr, 2016 16:24:26 +0000

- Resource system cleanup:
— Resource name and resource file location (if any) is now passed only via explicit constructors! (ResourceDescriptors already contain this data, so why use setters?)
- Fix a bug with ortho projection matrix calculation (set m[3][3] to 1. this was skipped when the identity() call was changed to zero() in the ortho() function)
— This also fixed text rendering

652 Diff Diff IonutCava picture IonutCava Thu 25 Feb, 2016 17:13:10 +0000

- More work on compressed texture loading (DXT1, DXT3, DXT5)

648 Diff Diff IonutCava picture IonutCava Sun 21 Feb, 2016 16:32:52 +0000

- Update copyright notice
- Move BoundingBox and BoundingSphere to a new BoundsComponent
— Add a temp hack in SceneGraphNode to update these

622 Diff Diff IonutCava picture IonutCava Thu 14 Jan, 2016 17:18:49 +0000

- Remove onCameraUpdate call from LightManager and SceneGraph as it’s not needed
- Remove special threading handlers from Resource class as very few derived classes use them for now
— Use ResourceState to check current loading state
- Use insertion sort for particles as most entries should already be sorted from the previous frame
- Use async RenderBin sorting system

604 Diff Diff IonutCava picture IonutCava Sun 13 Dec, 2015 19:04:57 +0000

- New post processing system:
— Simplified operators
— PostFX is always enabled. Individual operators are toggles on or off
— Fixed Bloom and adaptive exposure
- Reworked texture creation and resizing
— Saved TextureDescriptor as part of the texture state

591 Diff Diff IonutCava picture IonutCava Wed 02 Dec, 2015 17:17:23 +0000

- More work on the ForwardPlus renderer
- Singleton cleanup
- First steps for reducing scope of GFXDevice class

567 Diff Diff IonutCava picture IonutCava Sun 15 Nov, 2015 18:37:02 +0000

- Reduce some virtual function call overhead:
— Remove HardwareResource and merge it’s responsibilities back into Resource
— GFXDevice class doesn’t need to inherit from RenderAPIWrapper as it’s not a rendering API

537 Diff Diff IonutCava picture IonutCava Tue 27 Oct, 2015 20:43:40 +0000

- Attempt to improve texture descriptors and sampler descriptors

535 Diff Diff IonutCava picture IonutCava Tue 27 Oct, 2015 17:03:35 +0000

- Improve occlusion culling
- Improve draw command management

527 Diff Diff IonutCava picture IonutCava Fri 16 Oct, 2015 16:01:06 +0000

- EXPERIMENTAL Added Compute based HiZ occlusion culling
- Some fixes to shader line counting system

515 Diff Diff IonutCava picture IonutCava Tue 29 Sep, 2015 15:51:13 +0000

- Fix a few bugs related to geometry loading and glVertexArray offsets
— Also, optimise DVDConverter a bit
- Add a conditional toggle for texture state flushing (thus allowing us to avoid generating mipmaps for shadowmaps before the blur step and again after it)
- Add an option in config.h to disable/enable multi-context resource loading
- Added SFINAE type checks to ResourceCache class

485 Diff Diff IonutCava picture IonutCava Mon 10 Aug, 2015 20:14:50 +0000

- Fixed a mip-map generation issue:
— Mipmaps weren’t refreshed after the texture residency system was added. Texture::Bind was bypassed. Added a flushTextureState() method to handle texture updates

479 Diff Diff IonutCava picture IonutCava Thu 06 Aug, 2015 21:00:48 +0000

- Hacked Cube map texture loading using DSA to work on AMD GPUs

476 Diff Diff IonutCava picture IonutCava Mon 06 Jul, 2015 19:31:59 +0000

- Moving to pure OpenGL 4.5 context [Part 1: Textures]

451 Diff Diff IonutCava picture IonutCava Wed 27 May, 2015 22:37:46 +0000

- New windowing system is feature complete:
— Application can be started on any available display/monitor configurable via config.xml
— Alt + Enter toggles between Windowed / FullScreen / FullScreen Windowed
— CTRL + “+/-” Increases / Decreases rendering resolution at runtime
-— Framebuffer attachments are not recreated via the resource manager but the internal GL textures are deleted and new ones created with the new size in the parentResource
— Windowed mode can be made resizable via a config.xml option
— Window can be dragged across the screen without affecting rendering
— Resizing a window will snap it to a supported display mode dimension
— GUI and mouse selection is resolution independent and works in all display modes

450 Diff Diff IonutCava picture IonutCava Wed 27 May, 2015 16:06:41 +0000

- Window size != game resolution
- Always draw to a render target and always load PostFX data.
— PostFX enable/disable toggles batch processing on and off
- Added a resize method to textures that allows texture dimension changes without creating new resources

402 Diff Diff IonutCava picture IonutCava Fri 17 Apr, 2015 10:13:46 +0000

- Avoid some redundant state cases

397 Diff Diff IonutCava picture IonutCava Fri 10 Apr, 2015 15:33:01 +0000

- Disabled VTable initialization for abstract classes on windows
- Fixed an erroneous delegate bind in Kernel for graph plotting

375 Diff Diff IonutCava picture IonutCava Tue 17 Mar, 2015 17:22:55 +0000

- More batching work (experimental) :
— Added draw command batching
-— OpenGL uses glMultiDraw....Indirect using the new GenericDrawCommand’s ‘drawCount’ member
— Added new texture management System
-— Texture data needed for rendering is collected by the RenderingComponent then passed down to the rendering API via the GFXDevice class in bulk
-— OpenGL currently loops over the entire texture data collection and binds each texture manually. This can be improved by using bindless textures without affecting higher level structures
- OpenGL multisampled-framebuffers now resolve whenever accessing any of the attachements

373 IonutCava picture IonutCava Mon 16 Mar, 2015 17:19:29 +0000

- Some batching-related work (break rendering momentarily)