Commit Graph

10 Commits

Author SHA1 Message Date
rdb 348b1c344d texture: support uint/float/half/sRGB textures in TexturePeeker 2017-12-19 18:44:18 +01: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 69b3468b2c interrogate: more improvements to seq/map wrappers
Gets rid of properties defined as both MAKE_SEQ_PROPERTY/MAKE_MAP_PROPERTY, which are just a bad idea. Instead, adds a way for map properties to define a separate "keys" interface.

Fixes: #203
2017-11-27 17:29:50 +01:00
rdb 3be22679a4 display: also avoid getting more than 24 color bits if 0 were requested
See issue #197
2017-11-26 00:06:03 +01:00
rdb 0edac2e94a Work around gamma issue with 64-bit color depths on NVIDIA hardware 2017-11-16 23:52:12 +01:00
rdb 3621bd64c5 tests: add unit tests for bullet bam serializability 2017-11-08 01:56:31 +01:00
rdb dc1f5dd3b1 tests: fix syntax error on Python 3 2017-11-06 19:42:52 +01:00
rdb b73c627c61 tests: add interrogate tests for MAKE_PROPERTY et al 2017-11-06 13:02:23 +01:00
Mitchell Stokes aabf009ff0 tests: Add test_window_basic
This test just makes sure that created windows match the default
WindowProperties (with a few exceptions).

This also adds the following fixtures:

  * graphics_engine - scope='session', GraphicsEngine
  * graphics_pipe - scope='session', default GraphicsPipe
  * window - scope='test', GraphicsWindow with default framebuffer and window properties
2017-11-03 19:25:13 +01:00
Mitchell Stokes 9d7896ccc4 tests: Add simple NodePath tests using PyTest
These tests were converted from the tests branch with some changes:

  * Convert from unittest to PyTest
  * Update code to use new API (LVector3 instead of Vec3, properties, etc.)
2017-11-03 17:58:53 +01:00