Changeset View
Changeset View
Standalone View
Standalone View
autotests/client/test_shm_pool.cpp
Show All 38 Lines | |||||
39 | private Q_SLOTS: | 39 | private Q_SLOTS: | ||
40 | void init(); | 40 | void init(); | ||
41 | void cleanup(); | 41 | void cleanup(); | ||
42 | 42 | | |||
43 | void testCreateBufferNullImage(); | 43 | void testCreateBufferNullImage(); | ||
44 | void testCreateBufferNullSize(); | 44 | void testCreateBufferNullSize(); | ||
45 | void testCreateBufferInvalidSize(); | 45 | void testCreateBufferInvalidSize(); | ||
46 | void testCreateBufferFromImage(); | 46 | void testCreateBufferFromImage(); | ||
47 | void testCreateBufferFromImageWithAlpha(); | ||||
47 | void testCreateBufferFromData(); | 48 | void testCreateBufferFromData(); | ||
48 | void testReuseBuffer(); | 49 | void testReuseBuffer(); | ||
49 | void testDestroy(); | 50 | void testDestroy(); | ||
50 | 51 | | |||
51 | private: | 52 | private: | ||
52 | KWayland::Server::Display *m_display; | 53 | KWayland::Server::Display *m_display; | ||
53 | KWayland::Server::CompositorInterface *m_compositorInterface; | 54 | KWayland::Server::CompositorInterface *m_compositorInterface; | ||
54 | KWayland::Client::ConnectionThread *m_connection; | 55 | KWayland::Client::ConnectionThread *m_connection; | ||
▲ Show 20 Lines • Show All 94 Lines • ▼ Show 20 Line(s) | 148 | { | |||
149 | QSize size; | 150 | QSize size; | ||
150 | QVERIFY(!size.isValid()); | 151 | QVERIFY(!size.isValid()); | ||
151 | QVERIFY(!m_shmPool->createBuffer(size, 0, nullptr)); | 152 | QVERIFY(!m_shmPool->createBuffer(size, 0, nullptr)); | ||
152 | } | 153 | } | ||
153 | 154 | | |||
154 | void TestShmPool::testCreateBufferFromImage() | 155 | void TestShmPool::testCreateBufferFromImage() | ||
155 | { | 156 | { | ||
156 | QVERIFY(m_shmPool->isValid()); | 157 | QVERIFY(m_shmPool->isValid()); | ||
157 | QImage img(24, 24, QImage::Format_ARGB32); | 158 | QImage img(24, 24, QImage::Format_RGB32); | ||
158 | img.fill(Qt::black); | 159 | img.fill(Qt::black); | ||
159 | QVERIFY(!img.isNull()); | 160 | QVERIFY(!img.isNull()); | ||
160 | auto buffer = m_shmPool->createBuffer(img).toStrongRef(); | 161 | auto buffer = m_shmPool->createBuffer(img).toStrongRef(); | ||
161 | QVERIFY(buffer); | 162 | QVERIFY(buffer); | ||
162 | QCOMPARE(buffer->size(), img.size()); | 163 | QCOMPARE(buffer->size(), img.size()); | ||
163 | QImage img2(buffer->address(), img.width(), img.height(), QImage::Format_ARGB32); | 164 | QImage img2(buffer->address(), img.width(), img.height(), QImage::Format_RGB32); | ||
165 | QCOMPARE(img2, img); | ||||
166 | } | ||||
167 | | ||||
168 | void TestShmPool::testCreateBufferFromImageWithAlpha() | ||||
169 | { | ||||
170 | QVERIFY(m_shmPool->isValid()); | ||||
171 | QImage img(24, 24, QImage::Format_ARGB32_Premultiplied); | ||||
172 | img.fill(QColor(255,0,0,100)); //red with alpha | ||||
173 | QVERIFY(!img.isNull()); | ||||
174 | auto buffer = m_shmPool->createBuffer(img).toStrongRef(); | ||||
175 | QVERIFY(buffer); | ||||
176 | QCOMPARE(buffer->size(), img.size()); | ||||
177 | QImage img2(buffer->address(), img.width(), img.height(), QImage::Format_ARGB32_Premultiplied); | ||||
164 | QCOMPARE(img2, img); | 178 | QCOMPARE(img2, img); | ||
165 | } | 179 | } | ||
166 | 180 | | |||
167 | void TestShmPool::testCreateBufferFromData() | 181 | void TestShmPool::testCreateBufferFromData() | ||
168 | { | 182 | { | ||
169 | QVERIFY(m_shmPool->isValid()); | 183 | QVERIFY(m_shmPool->isValid()); | ||
170 | QImage img(24, 24, QImage::Format_ARGB32); | 184 | QImage img(24, 24, QImage::Format_ARGB32_Premultiplied); | ||
171 | img.fill(Qt::black); | 185 | img.fill(Qt::black); | ||
172 | QVERIFY(!img.isNull()); | 186 | QVERIFY(!img.isNull()); | ||
173 | auto buffer = m_shmPool->createBuffer(img.size(), img.bytesPerLine(), img.constBits()).toStrongRef(); | 187 | auto buffer = m_shmPool->createBuffer(img.size(), img.bytesPerLine(), img.constBits()).toStrongRef(); | ||
174 | QVERIFY(buffer); | 188 | QVERIFY(buffer); | ||
175 | QCOMPARE(buffer->size(), img.size()); | 189 | QCOMPARE(buffer->size(), img.size()); | ||
176 | QImage img2(buffer->address(), img.width(), img.height(), QImage::Format_ARGB32); | 190 | QImage img2(buffer->address(), img.width(), img.height(), QImage::Format_ARGB32_Premultiplied); | ||
177 | QCOMPARE(img2, img); | 191 | QCOMPARE(img2, img); | ||
178 | } | 192 | } | ||
179 | 193 | | |||
180 | void TestShmPool::testReuseBuffer() | 194 | void TestShmPool::testReuseBuffer() | ||
181 | { | 195 | { | ||
182 | QVERIFY(m_shmPool->isValid()); | 196 | QVERIFY(m_shmPool->isValid()); | ||
183 | QImage img(24, 24, QImage::Format_ARGB32); | 197 | QImage img(24, 24, QImage::Format_ARGB32_Premultiplied); | ||
184 | img.fill(Qt::black); | 198 | img.fill(Qt::black); | ||
185 | QVERIFY(!img.isNull()); | 199 | QVERIFY(!img.isNull()); | ||
186 | auto buffer = m_shmPool->createBuffer(img).toStrongRef(); | 200 | auto buffer = m_shmPool->createBuffer(img).toStrongRef(); | ||
187 | QVERIFY(buffer); | 201 | QVERIFY(buffer); | ||
188 | buffer->setReleased(true); | 202 | buffer->setReleased(true); | ||
189 | buffer->setUsed(false); | 203 | buffer->setUsed(false); | ||
190 | 204 | | |||
191 | // same image should get the same buffer | 205 | // same image should get the same buffer | ||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |