Skip to content

Commit 5acc75c

Browse files
committed
stretching updates for pxImageA (#1839)
1 parent d1cb679 commit 5acc75c

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

examples/pxScene2d/src/pxImageA.cpp

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ pxImageA::pxImageA(pxScene2d *scene) : pxObject(scene),
3636
mFrameTime = -1;
3737
mPlays = 0;
3838
mResource = pxImageManager::getImageA("");
39+
40+
mw = -1;
41+
mh = -1;
3942
}
4043

4144
pxImageA::~pxImageA()
@@ -46,8 +49,6 @@ pxImageA::~pxImageA()
4649

4750
void pxImageA::onInit()
4851
{
49-
mw = static_cast<float>(mImageWidth);
50-
mh = static_cast<float>(mImageHeight);
5152
}
5253

5354
rtError pxImageA::url(rtString &s) const
@@ -154,7 +155,7 @@ void pxImageA::draw()
154155
pxTimedOffscreenSequence &imageSequence = getImageAResource()->getTimedOffscreenSequence();
155156
if (imageSequence.numFrames() > 0)
156157
{
157-
context.drawImage(0, 0, mw, mh, mTexture, nullMaskRef, false, NULL, mStretchX, mStretchY);
158+
context.drawImage(0, 0, getOnscreenWidth(), getOnscreenHeight(), mTexture, nullMaskRef, false, NULL, mStretchX, mStretchY);
158159
}
159160
}
160161
}
@@ -261,8 +262,6 @@ void pxImageA::loadImageSequence()
261262
pxOffscreen &o = imageSequence.getFrameBuffer(0);
262263
mImageWidth = o.width();
263264
mImageHeight = o.height();
264-
mw = static_cast<float>(mImageWidth);
265-
mh = static_cast<float>(mImageHeight);
266265
}
267266
mReady.send("resolve", this);
268267
}
@@ -338,6 +337,26 @@ uint64_t pxImageA::textureMemoryUsage()
338337
return textureMemory;
339338
}
340339

340+
float pxImageA::getOnscreenWidth()
341+
{
342+
if(mw == -1 || mStretchX == pxConstantsStretch::NONE)
343+
{
344+
return static_cast<float>(mImageWidth);
345+
}
346+
else
347+
return mw;
348+
349+
}
350+
float pxImageA::getOnscreenHeight()
351+
{
352+
if(mh == -1 || mStretchY == pxConstantsStretch::NONE)
353+
{
354+
return static_cast<float>(mImageHeight);
355+
}
356+
else
357+
return mh;
358+
}
359+
341360
rtDefineObject(pxImageA, pxObject);
342361
rtDefineProperty(pxImageA, url);
343362
rtDefineProperty(pxImageA, resource);

examples/pxScene2d/src/pxImageA.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ class pxImageA: public pxObject, pxResourceListener
6161
virtual void releaseData(bool sceneSuspended);
6262
virtual void reloadData(bool sceneSuspended);
6363
virtual uint64_t textureMemoryUsage();
64+
virtual float getOnscreenWidth();
65+
virtual float getOnscreenHeight();
6466

6567
protected:
6668
virtual void onInit();

0 commit comments

Comments
 (0)