49 Commits

Author SHA1 Message Date
rdb
fcfa1d2c99 gobj: Fix ShaderBuffer.prepare() not actually doing anything 2022-11-21 18:25:46 +01:00
rdb
78c3db379c gobj: fix tests crash due to ShaderBuffer context not cleared at GSG death 2019-11-03 11:48:51 +01:00
rdb
669a655366 Fix ShaderBuffer cleanup assertion with state cache disabled 2018-12-26 22:47:14 +01:00
rdb
fbf939141b gobj: fix typo causing crash when preparing shader 2018-10-16 21:13:27 +02:00
Sam Edwards
b2bfb31114 general: Remove using std::* from headers
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.

Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
Sam Edwards
e2b4353800 general: Replace NULL (and 0 as pointer) with C++11 nullptr
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
rdb
6b726fa697 general: fix various compiler warnings and issues exposed thereby 2018-05-30 11:09:35 +02:00
rdb
2e20a0f16e Implement awaitable thread-safe future for async operations
This introduces AsyncFuture as a new base class of AsyncTask.  It's modelled after asyncio's Future class, except that it is thread-safe and you can use result() to block the current thread waiting for the future to finish (of course this is not necessary for use with coroutines).

AsyncFuture should be used for any operation that finishes in the future, to get the benefit of awaitability within coroutines as well as a standard interface for querying status and results of the operation as well as cancelling it.  As such, it's been implemented in various places, including texture.prepare() and win.trigger_copy().

Note that AsyncFuture is intended to be used *once*; it cannot be used more than once.  As an example of how this works, tex.prepare() will return the same future as long as the prepare isn't complete, but when it is done, subsequent calls to tex.prepare() will return a new future.
2017-12-04 22:25:28 +01:00
rdb
34068dc0c1 Implement support for SSBOs 2016-12-13 21:22:17 +01:00
tobspr
0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb
68f762aa20 Fix leak of prepared contexts, prevent deleting GL resources in wrong context in multi-GSG applications 2015-11-08 00:01:45 +01:00
rdb
a56f722c09 GeomPrimitive optimizations & tweaks 2015-01-23 13:54:29 +01:00
rdb
95d85819b0 Separate out sampler state from texture, support sampler objects, support LOD min/max/bias 2014-12-12 15:58:45 +01:00
David Rose
6872488839 stereo/multiview textures 2011-08-08 18:55:26 +00:00
David Rose
a21091c9dc graphics_memory_limit_changed 2009-02-10 20:40:37 +00:00
David Rose
c32747d900 fix texture bamming 2008-09-12 23:10:21 +00:00
David Rose
d71d7a0fdb avoid async texload race condition 2008-09-11 01:02:11 +00:00
David Rose
684810cbdd AdaptiveLru 2008-09-04 21:26:38 +00:00
David Rose
a8ec068c05 graphics-memory-limit 2008-08-29 23:03:53 +00:00
David Rose
8c2e657f15 Add gsg::update_texture() 2008-08-25 22:58:58 +00:00
David Rose
d7e6603118 work-in-progress: asynchronous texture loads 2008-08-13 01:13:09 +00:00
David Rose
fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
Josh Yelon
d8e6dc13a3 Modifications to eliminate class ShaderExpansion 2007-12-13 20:56:29 +00:00
David Rose
1073b9e643 compiler warnings 2007-11-26 20:14:43 +00:00
David Rose
923ff60d9f temp hack fix for released-buffer-cache-size on dx8/9 2007-10-23 00:38:12 +00:00
David Rose
be8b867498 released-vbuffer-cache 2007-10-19 15:37:19 +00:00
David Rose
0df3c4849b name more mutexes 2007-06-21 20:07:59 +00:00
David Rose
7905e4d69a convenience methods 2007-05-11 01:17:36 +00:00
David Rose
d1a06d8f02 correctly release gsg on window close 2007-04-26 00:44:20 +00:00
David Rose
1fdb425b88 merge shader_overhaul from jyelon 2007-03-15 21:04:31 +00:00
David Rose
76ff8ab6fd fix for reopening windows 2006-07-20 18:47:58 +00:00
David Rose
1940682af9 pass WindowProperties to GraphicsEngine::open_buffer and to related constructors 2006-06-15 14:02:40 +00:00
David Rose
ddd1046462 factor out Thread::get_current_thread() some more 2006-04-26 07:31:23 +00:00
David Rose
8a78fffd8f multithreading optimizations, tau profiler, related changes 2006-04-05 19:36:05 +00:00
David Rose
83a6c42496 better pstats tracking of texture/vbuffer memory 2006-03-16 21:26:56 +00:00
David Rose
08a099ba3a use ReMutex 2006-01-18 23:55:42 +00:00
Josh Yelon
2095d8c44f New shader system 2005-09-25 04:06:31 +00:00
Josh Yelon
f7ee3b5729 New shader system 2005-09-04 19:49:55 +00:00
David Rose
bc0d509090 bam 5.0, new Geom implementation is now official 2005-06-30 17:42:21 +00:00
David Rose
c83feafc70 more robust pstats for qpgeom stuff 2005-04-16 19:59:21 +00:00
David Rose
500f17c091 robustify collect_vertex_data some more 2005-04-14 03:54:10 +00:00
David Rose
dbed74e410 ibuffers as well as vbuffers 2005-03-18 20:18:57 +00:00
David Rose
7a305f825f fix vbuffer pstats reporting 2005-03-18 17:27:15 +00:00
David Rose
0edc10b609 beginning dx8 vbuffer support 2005-03-18 15:47:58 +00:00
David Rose
85b019feda vertex buffers? 2005-03-18 03:32:08 +00:00
David Rose
3e548e3663 new interrogate, minor config changes 2004-10-28 18:33:45 +00:00
David Rose
50f7d0bce7 restore GeomContexts and display lists 2004-03-20 02:09:49 +00:00
David Rose
0e084fe310 make multipass work (sort of) on dx8 2004-03-04 15:48:19 +00:00
David Rose
232f9395bf split out PreparedGraphicsObjects from GraphicsStateGuardians 2004-02-25 19:34:30 +00:00