summaryrefslogtreecommitdiffstats
path: root/src/core/resources
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Fix multiple C++ documentation issuesTopi Reinio2015-04-142-1/+5
| | | | | | | | | | | | | | | | | | | - Remove multiple \namespace commands for namespace Qt3D. QDoc in 5.5 is now able to collate namespace members from multiple modules. - Mark 'Q...Private' classes and functions taking private arguments as \internal - Use correct \qtvariable for Qt 3D Core and Render - Add src/plugins directory to Qt 3D Core documentation build to correctly generate Assimp-related documentation. - Ensure documentation for C++ properties is visible by using the \property command instead of documenting the setter/getter functions. - Add export and logging macros to qdoc ignore directives - Remove unnecessary use of \fn command - Language and styling fixes Change-Id: I2481fa30ad2f6869b85c038c20ff1730b8522d46 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Use QDebugStateSaver to restore space setting in stream operators.Friedemann Kleint2015-04-011-1/+2
| | | | | | | | Returning dbg.space() breaks formatting on streams that already have nospace() set. Change-Id: I645a3a06176a394921e75b56dd725f291db55fb3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Review doc Qt3DNico Vertriest2015-03-163-25/+23
| | | | | | Task-number: QTBUG-44180 Change-Id: Ia5ce031397f9b03c5ba692aa30b6097dc60e59e3 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* [QFrameAllocator] Do not leak private dataKonstantin Ritt2015-03-161-1/+2
| | | | | Change-Id: Id50a6e7c95980edbc98f1f1b9d08d6175ceba517 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix MSVC warnings.Friedemann Kleint2015-03-121-2/+2
| | | | | | | | | | | | aspects\qabstractaspect.cpp(50) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data resources\qframeallocator.cpp(276) : warning C4267: 'argument' : conversion from 'size_t' to 'uint', possible loss of data resources\qframeallocator.cpp(284) : warning C4267: 'argument' : conversion from 'size_t' to 'uint', possible loss of data qchangearbiter.cpp(108) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data qt3d/src/render/backend/jobs/renderviewjobutils_p.h(64) : warning C4099: 'Qt3D::Render::ShaderUniform' : type name first seen using 'struct' now seen using 'class' Change-Id: I055f2021cbecf0765a811aedd87eb2cee97e6431 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Copyright header change.Mika Salmela2015-02-0910-190/+140
| | | | | | | | As for preparation for Qt5.5 release the copyright header is updated to correspond the current license requirements. Change-Id: I36632918b66f455539453b42c369689fb11298ec Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourcesManager: restore the relock on the LockingPolicyPaul Lemire2015-02-081-0/+6
| | | | | | | Why was it removed in the first place ? Change-Id: I526c9957570f18700b9eeb7f7cd061cd642e203b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add some missing docs for QCircularBufferSean Harmer2014-12-312-9/+39
| | | | | Change-Id: Ib20f20532c7df084900036dce8c55a7010da1d0c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make QResourcemanager and friends docs more consistentSean Harmer2014-12-221-60/+56
| | | | | Change-Id: I0e9e860568b88ced321cdd35938967b1a3986ee5 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix ctor signature in QCircularBuffer::const_iterator docsSean Harmer2014-12-221-1/+1
| | | | | Change-Id: Ia03f69eefff937c84f1f5f6bf2a34b0dc0b3a294 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add namespace to QFrameAllocator docs and remove leading asterisksSean Harmer2014-12-221-7/+6
| | | | | Change-Id: I015a203ab9f6fb5520b9674ab55fa89e698b1195 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add namespace to QCircularBuffer docs and fix other doc errorsSean Harmer2014-12-221-196/+189
| | | | | Change-Id: I11a58d8b3e21840a0d90bec50f6b64778b48969e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make sure we pass properly constructed resourcesKevin Ottens2014-12-171-4/+4
| | | | | Change-Id: I0ca22688c9bdbd0cead511714c1dd00997881b0a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove Q_NO_USING_KEYWORD usageThiago Macieira2014-12-171-8/+0
| | | | | | | Compilers that don't support the using keyword are too old Change-Id: If6d2bc657f6c41e81009aabbb31000e3f2a3a3f7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: Review documentation QT3DNico Vertriest2014-12-091-87/+86
| | | | | | | Task-number: QTBUG-42819 Change-Id: I6e79994e837e139f04c7d5ec1b0904d488de5b57 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make QCircularBuffer and QBoundedCircularBuffer privateSean Harmer2014-11-193-6/+6
| | | | | Change-Id: I298fbaf819a118a5da4453082ec7f1484835480a Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename QResourcesManager -> QResourceManager and make privateSean Harmer2014-11-184-23/+23
| | | | | | | | Once we are happy with the API we can make this public for a future release. Change-Id: I914f087e10adddbadac1649a8b889b9f53f82fd2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Cleanup and hide more of the QFrameAllocator implementation.Milian Wolff2014-11-143-48/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also allows the compiler to inline some more code leading to a slight performance gain in the benchmarks: ********* Start testing of tst_QFrameAllocator ********* Config: Using QtTest library 5.5.0, Qt 5.5.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 4.9.2) PASS : tst_QFrameAllocator::initTestCase() PASS : tst_QFrameAllocator::benchmarkAllocateSmall() RESULT : tst_QFrameAllocator::benchmarkAllocateSmall(): 830,448 instructions per iteration (total: 830,448, iterations: 1) PASS : tst_QFrameAllocator::benchmarkAllocateBig() RESULT : tst_QFrameAllocator::benchmarkAllocateBig(): 916,006 instructions per iteration (total: 916,006, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateSmall() RESULT : tst_QFrameAllocator::benchmarkDeallocateSmall(): 641,572 instructions per iteration (total: 641,572, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateBig() RESULT : tst_QFrameAllocator::benchmarkDeallocateBig(): 641,573 instructions per iteration (total: 641,573, iterations: 1) PASS : tst_QFrameAllocator::benchmarkAllocateRaw() RESULT : tst_QFrameAllocator::benchmarkAllocateRaw(): 827,544 instructions per iteration (total: 827,544, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateRaw() RESULT : tst_QFrameAllocator::benchmarkDeallocateRaw(): 721,701 instructions per iteration (total: 721,701, iterations: 1) PASS : tst_QFrameAllocator::cleanupTestCase() Totals: 8 passed, 0 failed, 0 skipped, 0 blacklisted ********* Finished testing of tst_QFrameAllocator ********* Change-Id: Id1f314182aa8257eba15179e3567f303f7bb9ef1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Enforce that we never try to allocate unexpectedly huge items.Milian Wolff2014-11-141-24/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also allows us to greatly simplify the code while at it. If future subclasses ever become larger than our maxObjectSize, we can either force them to overload operator new themselves or increase the maxObjectSize in the allocator. That never happens in practice and just increases the codesize and also slows down the code. The benchmark now shows the following numbers for perf's instr:k counter on my machine: ********* Start testing of tst_QFrameAllocator ********* Config: Using QtTest library 5.5.0, Qt 5.5.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 4.9.2) PASS : tst_QFrameAllocator::initTestCase() PASS : tst_QFrameAllocator::benchmarkAllocateSmall() RESULT : tst_QFrameAllocator::benchmarkAllocateSmall(): 880,438 instructions per iteration (total: 880,438, iterations: 1) PASS : tst_QFrameAllocator::benchmarkAllocateBig() RESULT : tst_QFrameAllocator::benchmarkAllocateBig(): 965,937 instructions per iteration (total: 965,937, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateSmall() RESULT : tst_QFrameAllocator::benchmarkDeallocateSmall(): 701,573 instructions per iteration (total: 701,573, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateBig() RESULT : tst_QFrameAllocator::benchmarkDeallocateBig(): 701,572 instructions per iteration (total: 701,572, iterations: 1) PASS : tst_QFrameAllocator::benchmarkAllocateRaw() RESULT : tst_QFrameAllocator::benchmarkAllocateRaw(): 867,893 instructions per iteration (total: 867,893, iterations: 1) PASS : tst_QFrameAllocator::benchmarkDeallocateRaw() RESULT : tst_QFrameAllocator::benchmarkDeallocateRaw(): 771,701 instructions per iteration (total: 771,701, iterations: 1) PASS : tst_QFrameAllocator::cleanupTestCase() Totals: 8 passed, 0 failed, 0 skipped, 0 blacklisted ********* Finished testing of tst_QFrameAllocator ********* Change-Id: I0500a206e8460e27b5157d6238a06bee355b7318 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Guard against unsafe usage of QFrameAllocator::(de)allocateRawMemory.Milian Wolff2014-11-141-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before one could potentially fall into a trap when one would call allocateRawMemory<BaseClass>(size); When size belongs to a child class inheriting from BaseClass and falls into a different (larger) bucket, the following deallocation via deallocateRawMemory<BaseClass>() would fail. Because there we just picked the size of the BaseClass to find the bucket. Now the whole API is restructured to guard against this wrong usage: - we only ever operator on void* in the *Raw* methods - we pass on the size explictily This also means we must use the safe operator deallocate overloads that also take the size as a parameter. The unit test was run first to check that this was indeed an issue. Then it is ported to the new API and cleanup up a bit as well to reduce duplicated code. Change-Id: I559af1c0ffc633962fac12d6e3cadf87c09ef92d Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Enforce unsigned values for INDEXBITS template parameter.Milian Wolff2014-11-143-15/+15
| | | | | | | | We use shift operations on those values and they are only defined for positive values. So better enforce this by the compiler. Change-Id: I602bd69c6fb0dfbd843eb2d30578a4a7f29f95bb Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix off-by-one error in ArrayAllocatingPolicy::releaseResource.Milian Wolff2014-10-291-1/+1
| | | | | | | | | | | | | A pointer "r" is contained in a bucket when the condition firstItem > r || r > firstItem + BucketSize is fulfilled. I introduced an off-by-one error when negating this expression. This lead to the situation where the last-plus-one item of a bucket was said to belong to a bucket, while it should not. Change-Id: I000e774f55ba4575348058f9efd70e606fa1baa4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Optimize QHash usage in QResourceManager.Milian Wolff2014-10-291-18/+18
| | | | | | | | | | | | | | | | | | | | This reduces the amount of hash lookups, leading to a nice speedup: before: RESULT : tst_QResourcesManager::benchmarkAllocateSmallResources(): 44,848,672 instructions per iteration (total: 44,848,672, iterations: 1) RESULT : tst_QResourcesManager::benchmarkAllocateBigResources(): 46,634,161 instructions per iteration (total: 46,634,161, iterations: 1) after: RESULT : tst_QResourcesManager::benchmarkAllocateSmallResources(): 40,915,522 instructions per iteration (total: 40,915,522, iterations: 1) RESULT : tst_QResourcesManager::benchmarkAllocateBigResources(): 42,700,992 instructions per iteration (total: 42,700,992, iterations: 1) Change-Id: I0c4cd2f0a819d427f5af32de007b461793217464 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Optimize: Use a plain non-recursive QMutex in the QResourceManager.Milian Wolff2014-10-291-80/+38
| | | | | | | | | | | | | | | | | | | | | The overhead of a read/write lock should not be required for such small critical sections. It will also allow us to cleanup the code a bit more. Already, the code changes lead to a small improvement before: RESULT : tst_QResourcesManager::benchmarkAllocateSmallResources(): 46,552,767 instructions per iteration (total: 46,552,767, iterations: 1) RESULT : tst_QResourcesManager::benchmarkAllocateBigResources(): 48,338,703 instructions per iteration (total: 48,338,703, iterations: 1) after: RESULT : tst_QResourcesManager::benchmarkAllocateSmallResources(): 44,848,672 instructions per iteration (total: 44,848,672, iterations: 1) RESULT : tst_QResourcesManager::benchmarkAllocateBigResources(): 46,634,161 instructions per iteration (total: 46,634,161, iterations: 1) Change-Id: I8ef0aa52be3caf8b4c8691579677f693a054565c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Optimize ArrayPreallocationPolicy.Milian Wolff2014-10-251-21/+21
| | | | | | | | | | | | | | | | | | The tricks applied are identical to those done previously for ArrayAllocationPolicy: We remove the obsolete hash for the index mapping and instead use pointer differences directly, which is much faster and reduces the memory consumption. Some variables are also renamed to better reflect common allocator nomenclature. The added benchmark shows a reduction of the instruction count by a factor of about 10. Change-Id: Icabc354ab9e1e8ea0b1dc83c71a2f2cfe49d1da0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourcesManager: Added dynamic ArrayAllocation policyPaul Lemire2014-10-251-3/+87
| | | | | | | | | | | | | Startup memory usage is now 10% of what it was before. Unit tests corrected and benchmarks added. Benchmarks: DynamicArrayPolicy QResourcesManager Change-Id: Idaeedba5156ac2d6a0a494e7399d9dcb141dc81c Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QFrameAllocator allocate based on size instead of typePaul Lemire2014-09-301-3/+5
| | | | | | | | Allows to handle allocation of subclasses using the overloaded new operator from the parent. Change-Id: Ie587c81fb3a5cb5aa6735377bfcc57bb4407b117 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix compilation: ISO C++ does not allow anonymous structsThiago Macieira2014-08-171-10/+11
| | | | | | | | qhandle.h:103:9: error: ISO C++ prohibits anonymous structs [-Wpedantic] Change-Id: I06e6736d96ad24968d276e721ce53752ee99ebeb Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Clean up the headersThiago Macieira2014-08-175-26/+26
| | | | | | | | | | | They MUST compile in pedantic, -Werror=shadow, no-keywords mode. In addition to that, this fixes: error: typedef ‘qHandle’ locally defined but not used [-Werror=unused-local-typedefs] Change-Id: If39e049dee0d2a468fcd524b18597e3c088c0bc3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QFrameAllocator delete sizeof(*ptr) instead of sizeof(T)Paul Lemire2014-08-141-2/+2
| | | | | | | | This ensure that if T is a base class, we release the right amount of memory. Of course this assumes the allocation was made using the correct subclass. Change-Id: I9bbbc223726f833c09a747279893a28f533bdabf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourcesManager bug fixesPaul Lemire2014-08-141-27/+36
| | | | | | | | | | | | | | | | | Found out that not naming the ReadLocker / WriteLocker caused them to be directly destroyed hence not locking anything. If some resource is acquired with acquire (not using an indexing id) it must explicitly be released using release and the handle. This allows to make release significantly faster by not having to lookup if there is an id associated with a handle. ListAllocatingPolicity slighty improved. However there seem to be an issue with ListAllocationgPolicy where using a QList might be, by its nature a bad idea. If the QList is reallocated when it needs to be grown, all pointer values returned by allocate may be invalid and then cause a crash. We'll have to see what we can do for that. Change-Id: I049d322c02e686ee2e97928a6fd8b648be5d2e62 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QFrameAllocator: raw memory allocator without placement new callPaul Lemire2014-08-142-5/+22
| | | | | Change-Id: Ie6a4f6409001ac9b8c39727017d10c216f6cd7a5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourcesManager cleanupPaul Lemire2014-07-221-1/+61
| | | | | | | | | | | | If a resource managed by a QResourcesManager has declared a Q_DECLARE_RESOURCE_INFO(Resource, Q_REQUIRES_CLEANUP); in its header, a call to Resource->cleanup() will be performed when the resource is released. Note: Needs the next patch to compile Change-Id: Icef073c90f44a8e43a07adb5b9a496b86d7a4398 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Backend refactoringPaul Lemire2014-07-181-5/+6
| | | | | | | | | | Minimized references to frontend elements from the backend. QNode now has a uuid. simple-qml update to use an instanciator. Changed slightly the way LoadDataMeshJobs works. Change-Id: If2866eb124bf9c026098ea0c70ae197101e9553e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QFrameAllocator added valgrind macros to help debuggingPaul Lemire2014-07-032-9/+15
| | | | | Change-Id: I6cbf360e86cae4fdfcef123d7142aced04b616dd Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QFrameAllocator + unit testsPaul Lemire2014-07-034-6/+405
| | | | | Change-Id: I0bf124236d0bf8f28c347b07ab323e64091c5e6f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Empty QFrameAllocator classPaul Lemire2014-07-033-2/+129
| | | | | Change-Id: Ie3b7c7488be96edee9536fe7849b35957526df6a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Corrected doc in QResourcesManagerPaul Lemire2014-06-281-16/+29
| | | | | Change-Id: I8a874ae6bf19f3948949e1945dd1462efcda2e74 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* LockingPolicy::WriteLocker and LockingPolicy::ReadLockerPaul Lemire2014-06-261-43/+96
| | | | | | | | Also renamed the LockingPolicy implementation to ObjectLevelLockingPolicy to reduce confusion with the template name. Change-Id: I7a9c298f5068d27dc78716a314e08b4a10c7ea6d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractResourcesManager renamed to QResourcesManagerPaul Lemire2014-06-263-5/+5
| | | | | Change-Id: Ic89c53ee527cf1f174445f019566b8ab8c648f36 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAbstractResourcesManager refactored to use a policy based designPaul Lemire2014-06-264-245/+175
| | | | | | | | | | | | | | | | | | | | Two policies have been added, AllocatingPolicy and LockingPolicy. The AllocatingPolicy removes the need for subclassing QAbstractManager to handle different allocating scheme. This is now handled through a dedicated AllocatingPolicty that can be easily set by setting a template parameter. The default AllocationPolicy is ArrayAllocatingPolicy. QArrayResourcesManager and QListResourcesManager have therefore been removed and replaced by those. Tests have also been updated. The second policy, LockingPolicy provides a way to specify the locking behavior to be used by the QAbstractResourcesManager. The default is NonLockingPolicy which doesn't lock anything. The other LockingPolicy provides locking around a QReadWriteLocker. The QAbstractResourcesManager class should be renamed to QResourcesManager. Change-Id: Ifecf7f1bcd5205eff78f9200b4dee004bee28af4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QArrayManagerFixPaul Lemire2014-06-021-1/+0
| | | | | | | | | Removed a useless line that caused a call to the dtor of the manager resource upon acquisition. Change-Id: I94b4344ffb0ad34f5c2050480d7b286b0ac53c2a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Don't export template classesSean Harmer2014-06-023-3/+3
| | | | | | Change-Id: I8fe8055ec470c23e0337c83275912aa75bf38af4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Windows fix : QListResourcesManager, QArrayResourcesManagerPaul Lemire2014-05-312-78/+60
| | | | | | | | | Moved methods definition within class declaration to solve Windows compilation error. Still doesn't compile entirely though due to Assimp errors it seems. Change-Id: I1490990d93ad5517ffe8693459822a8a62fb1317 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add QBoundedCircularBuffer and testSean Harmer2014-04-192-1/+142
| | | | | Change-Id: Ied0bd701fa653396b657ea5c2f2097eb7a425953 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add QCircularBuffer and testSean Harmer2014-04-173-1/+2902
| | | | | | | | | | | | | This is different to QtCore's QRingBuffer. QRingBuffer deals with raw bytes with a non-contiguous list of QByteArrays. QCircularBuffer is strongly typed and the data is guaranteed to be stored in a contiguous block of memory. Although the start/end of the buffer may not correspond to the start/end of the block of memory once it has reached capacity and wraps around. Done-with: Andreas Hartmetz and Marc Mutz Change-Id: Id03ad308b13fb359604d19474d892ff22c1e9b93 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Added missing methods to QAbstractResourcesManagerPaul Lemire2014-04-141-2/+19
| | | | | Change-Id: I50d7d25f0fb4afd8fba247a08b8f937a064030cc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* ResourcesManager subclassesPaul Lemire2014-04-105-39/+296
| | | | | | | | QArrayResourcesManager : QVector based resources manager QListResourcesManager : QList bases resources manager Change-Id: I487716749dccb7cb75edc6556d93fc3bb96941ee Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix INDEXBITS in QHandleManager, QHandlePaul Lemire2014-04-093-36/+40
| | | | | | | | | | | | QHandleManager worked only when INDEXBITS was set to the default value 16. This is corrected now so that a QResourceManager<T, 4> created a QHandleManager<T, 4> which provides QHandle<T, 4> Follow up commits will follow for the refactoring of QResourcesManager into subclasses that can implement their own dedicated memory allocation scheme. Change-Id: If3b3fb43ae1c9473d9777cf9ba984ba37a65cfa9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QResourcesManagerPaul Lemire2014-04-093-1/+196
| | | | | | | | QResources manager adapted to work with Sean Harmer's QHandle and QHandleManager. Change-Id: Ia2d60c93b72913194bbd04e064a5457ff1a091b7 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>