Skip to content

Commit f2bf686

Browse files
committed
Allow changing costume size in RenderedTarget
1 parent 6061e9c commit f2bf686

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

ScratchCPPGui/irenderedtarget.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ class IRenderedTarget
4040

4141
virtual libscratchcpp::Target *scratchTarget() const = 0;
4242

43+
virtual double costumeWidth() const = 0;
44+
virtual void setCostumeWidth(double width) = 0;
45+
46+
virtual double costumeHeight() const = 0;
47+
virtual void setCostumeHeight(double width) = 0;
48+
4349
virtual unsigned char *svgBitmap() const = 0;
4450
virtual QBuffer *bitmapBuffer() = 0;
4551
virtual const QString &bitmapUniqueKey() const = 0;

ScratchCPPGui/renderedtarget.cpp

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ void RenderedTarget::loadProperties()
5959

6060
// Coordinates
6161
double size = sprite->size() / 100;
62-
m_x = m_engine->stageWidth() / 2 + sprite->x() - m_costume->rotationCenterX() * size / 2 * (m_newMirrorHorizontally ? -1 : 1);
63-
m_y = m_engine->stageHeight() / 2 - sprite->y() - m_costume->rotationCenterY() * size / 2;
62+
m_x = static_cast<double>(m_engine->stageWidth()) / 2 + sprite->x() - m_costume->rotationCenterX() * size / 2 * (m_newMirrorHorizontally ? -1 : 1);
63+
m_y = static_cast<double>(m_engine->stageHeight()) / 2 - sprite->y() - m_costume->rotationCenterY() * size / 2;
6464
m_originX = m_costume->rotationCenterX() * size / 2.0;
6565
m_originY = m_costume->rotationCenterY() * size / 2.0;
6666

@@ -70,8 +70,8 @@ void RenderedTarget::loadProperties()
7070

7171
mutex.unlock();
7272
} else if (m_stageModel) {
73-
m_x = m_engine->stageWidth() / 2 - m_costume->rotationCenterX() / 2;
74-
m_y = m_engine->stageHeight() / 2 - m_costume->rotationCenterY() / 2;
73+
m_x = static_cast<double>(m_engine->stageWidth()) / 2 - m_costume->rotationCenterX() / 2.0;
74+
m_y = static_cast<double>(m_engine->stageHeight()) / 2 - m_costume->rotationCenterY() / 2.0;
7575
m_originX = m_costume->rotationCenterX() / 2.0;
7676
m_originY = m_costume->rotationCenterY() / 2.0;
7777
}
@@ -189,6 +189,30 @@ Target *RenderedTarget::scratchTarget() const
189189
return nullptr;
190190
}
191191

192+
double RenderedTarget::costumeWidth() const
193+
{
194+
return m_width;
195+
}
196+
197+
void RenderedTarget::setCostumeWidth(double width)
198+
{
199+
mutex.lock();
200+
m_width = width;
201+
mutex.unlock();
202+
}
203+
204+
double RenderedTarget::costumeHeight() const
205+
{
206+
return m_height;
207+
}
208+
209+
void RenderedTarget::setCostumeHeight(double height)
210+
{
211+
mutex.lock();
212+
m_height = height;
213+
mutex.unlock();
214+
}
215+
192216
unsigned char *RenderedTarget::svgBitmap() const
193217
{
194218
return m_svgBitmap;

ScratchCPPGui/renderedtarget.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ class RenderedTarget
4444

4545
libscratchcpp::Target *scratchTarget() const override;
4646

47+
double costumeWidth() const override;
48+
void setCostumeWidth(double width) override;
49+
50+
double costumeHeight() const override;
51+
void setCostumeHeight(double height) override;
52+
4753
unsigned char *svgBitmap() const override;
4854
QBuffer *bitmapBuffer() override;
4955
const QString &bitmapUniqueKey() const override;

0 commit comments

Comments
 (0)