327 Commits

Author SHA1 Message Date
Dmitry Marakasov
e6b31930b6 Add test for optional 2014-12-25 17:31:14 +03:00
Dmitry Marakasov
d4736c2a0d Add SDL2pp wrapper for optional
With future C++ standards, library will switch to std::optional, however
for now we need a wrapper to choose between our bundled implementation,
std::experimental::optional (if that's available) and std::optional
(when that's available)
2014-12-25 17:28:23 +03:00
Dmitry Marakasov
bd81462de1 Untie optional from libc++
Style changes:
* Change namespace: std::experimental -> SDL2pp::cpp_optional
* Change _LIBCPP_BEGIN_NAMESPACE_STD to plain "namespace std {"
* Remove _LIBCPP_INLINE_VISIBILITY, _LIBCPP_EXCEPTION_ABI
* Change _NOEXEPT to noexcept
* Address all c++ standard library primitives via std::

Functional changes:
* Change _LIBCPP_ASSERT() to plain assert()
* Remove constexpr from functions which require c++1y relaxed constexpr
  requirements
* Change __is_nothrow_swappable condition for noexcept of swap(), to
  noexcept(std::swap) (idea taken from libstdc++)
* Remove constexpr from operator-> const to not require
  internal __has_operator_addressof
2014-12-25 17:26:52 +03:00
Dmitry Marakasov
f35c7c9cba Remove limit in c++ standard version 2014-12-25 15:48:34 +03:00
Dmitry Marakasov
2dca69320e Fix include guards 2014-12-25 15:44:46 +03:00
Dmitry Marakasov
82a91b3afe Import experimental/optional from libc++ 3.5, under MIT license 2014-12-25 15:43:24 +03:00
Dmitry Marakasov
e02beb8692 Merge branch 'master' into doxygen
Conflicts:
	SDL2pp/AudioDevice.hh
2014-12-25 14:37:04 +03:00
Dmitry Marakasov
f8c6b2a9fb Add operators to offset a Rect by a Point 2014-12-20 18:04:28 +03:00
Dmitry Marakasov
18fe309309 Remove demos into more suitable examples
Also add options for conditional build of tests and examples
2014-12-20 18:04:22 +03:00
Dmitry Marakasov
5c0dfc3824 Add note on installation 2014-12-20 03:18:00 +03:00
Dmitry Marakasov
fa8dbea4fd Document RWops class 2014-12-20 00:40:31 +03:00
Dmitry Marakasov
ae2968e2fe Use SDL2 seek whence flags, not ones from stdio 2014-12-20 00:21:35 +03:00
Dmitry Marakasov
862d8cf408 Fix typo 2014-12-19 23:54:51 +03:00
Dmitry Marakasov
9e7e4281bf Fix gcc error 2014-12-19 23:53:48 +03:00
Dmitry Marakasov
e1cd806d0f Finish documenting Renderer class 2014-12-19 22:24:51 +03:00
Dmitry Marakasov
ef56e5494b Partially document SDL2pp::Renderer class 2014-12-19 22:06:09 +03:00
Dmitry Marakasov
6be5a5d0e7 Provide group names 2014-12-19 21:52:27 +03:00
Dmitry Marakasov
99f15b9403 Reference SDL as SDL2
Also makes % which disables autolinking uneeded
2014-12-19 21:30:10 +03:00
Dmitry Marakasov
fae12fdb7c Move whole descriptions into documentation headers 2014-12-19 21:28:03 +03:00
Dmitry Marakasov
c74a6332f7 Document AudioDevice class 2014-12-19 21:20:19 +03:00
Dmitry Marakasov
7ccded6216 Document Texture::LockHandle and AudioDevice::LockHandle classes 2014-12-19 19:50:10 +03:00
Dmitry Marakasov
486dbb7bf4 Provide copy operations for AudioDevice::LockHandle 2014-12-19 19:33:30 +03:00
Dmitry Marakasov
3dd739d4a3 Provide default argument for Texture::Lock() 2014-12-19 19:26:53 +03:00
Dmitry Marakasov
e369b77263 Document AudioSpec class 2014-12-19 18:44:52 +03:00
Dmitry Marakasov
eea2b2989b Install pkg-config file 0.4.0 2014-12-19 00:51:57 +03:00
Dmitry Marakasov
3660efab44 Provide version information 2014-12-19 00:48:48 +03:00
Dmitry Marakasov
ed5ad9faf8 Update project comment 2014-12-19 00:17:17 +03:00
Dmitry Marakasov
69e2aa1414 Merge branch 'master' into doxygen
Conflicts:
	SDL2pp/SDL2pp.hh
2014-12-18 21:37:55 +03:00
Dmitry Marakasov
6b1ab40bfd Add Texture to the group 2014-12-18 21:36:13 +03:00
Dmitry Marakasov
8c06e7f8b9 Fix groups 2014-12-18 20:47:53 +03:00
Dmitry Marakasov
a5ffd2f7ec Document SDL class 2014-12-18 20:47:18 +03:00
Dmitry Marakasov
2c164dfcc2 Document Exception class 2014-12-18 20:20:47 +03:00
Dmitry Marakasov
ea98311525 Document Window class 2014-12-18 20:02:21 +03:00
Dmitry Marakasov
a6ef469487 Split AudioSpec into separate header 2014-12-18 18:26:11 +03:00
Dmitry Marakasov
c14ec31ed8 Use finer-grained includes in demos 2014-12-18 18:11:20 +03:00
Dmitry Marakasov
f51013cf6a Bump soname after incompatible ABI changes in audio 2014-12-18 17:42:42 +03:00
Dmitry Marakasov
d5ddaa63a9 Merge branch 'master' into doxygen
Conflicts:
	README.md
	SDL2pp/SDL2pp.hh
2014-12-18 17:36:57 +03:00
Dmitry Marakasov
ef152c2a84 Merge branch 'header-tests'
Conflicts:
	tests/CMakeLists.txt
2014-12-18 17:30:00 +03:00
Dmitry Marakasov
95f43d8478 Merge branch 'rwops-improvements' 2014-12-18 17:28:27 +03:00
Dmitry Marakasov
7e61a4aa7d Merge branch 'texture-lock' 2014-12-18 17:28:08 +03:00
Dmitry Marakasov
9a245e073a Merge branch 'audio-fixes' 2014-12-18 17:28:02 +03:00
Dmitry Marakasov
b8d3b08f10 Implement fixed integer r/w methods 2014-12-18 17:24:19 +03:00
Dmitry Marakasov
6813606086 Fix build on older CMake versions
MAKE_C_IDENTIFIER seem to only be available on relatively new CMake
versions, so replace it with similar REGEX REPLACE.
2014-12-18 16:55:27 +03:00
Dmitry Marakasov
d7987b33da Allow ContainerRWops to work with both const and non-const containers
Analogus to how StreamRWops work. Also add more tests for
ContainerRWops.
2014-12-18 16:48:48 +03:00
Dmitry Marakasov
53aa26dec5 Make StreamRWops work with istream/ostream
Streams do not generally work well with RWops because
* streams have separate read and write pointers
* ostream doesn't allow you to determine how many bytes were actually written
* istream and ostream have separate set of functions

Try my best to support streams in RWops though, engaging some template
magic:
* provide separate template implementations of all operations which
  depend on whether stream is an istream or ostream. This allows to
  e.g. return 0 immediately for an attempt to write() to istream.
* disallow StreamRWops for classes which are both istream and ostream
  to not run into ambiguity of separate read/write pointers
* for read failure, but partially read object back to the stream to not
  lose data for following read (not sure that e.g. fread behaves so
  though; I'll anyway expect user to Seek() after read or write failure)
* for write failure, there's no way to avoid leaking partial data to the
  stream

In general, it is best to use this container as read-only.

Also add tests for StreamRWops
2014-12-18 16:23:22 +03:00
Dmitry Marakasov
c5f7de0c46 Make header tests completely automatic 2014-12-18 14:54:53 +03:00
Dmitry Marakasov
7ba131a913 Add StreamRWops class 2014-12-18 14:32:27 +03:00
Dmitry Marakasov
c73bd885c5 Name header file after class it defines 2014-12-18 14:29:45 +03:00
Dmitry Marakasov
9d2097cdea Silence warning on Release build 2014-12-18 13:16:12 +03:00
Dmitry Marakasov
d5b557706a Use correct exception
SDL2pp::Exception doesn't is not suitable here as this is not an SDL
error. Incorrect argument is a logic error.
2014-12-18 13:14:12 +03:00