Should fix build.

This commit is contained in:
Martín Lucas Golini
2025-09-29 00:56:04 -03:00
parent 0ec661852a
commit 2cc0aa6ac6
5 changed files with 66 additions and 21 deletions

View File

@@ -30,19 +30,21 @@ class EE_API UISprite : public UIWidget {
Graphics::Sprite* getSprite() const;
void setSprite( Graphics::Sprite* sprite );
Drawable* getDrawable() const;
UISprite* setSprite( Graphics::Sprite* sprite );
Color getColor() const;
void setColor( const Color& color );
UISprite* setColor( const Color& color );
const RenderMode& getRenderMode() const;
void setRenderMode( const RenderMode& render );
UISprite* setRenderMode( const RenderMode& render );
const Vector2f& getAlignOffset() const;
void setIsSpriteOwner( const bool& dealloc );
UISprite* setIsSpriteOwner( const bool& dealloc );
bool getDeallocSprite();

View File

@@ -4,6 +4,8 @@
#include <eepp/ui/uiprogressbar.hpp>
#include <eepp/ui/uiscenenode.hpp>
#include <format>
namespace EE::UI::Tools {
static const auto AUDIO_PLAYER_LAYOUT = R"xml(

View File

@@ -8,6 +8,7 @@
#include <eepp/ui/uiimage.hpp>
#include <eepp/ui/uiloader.hpp>
#include <eepp/ui/uiscenenode.hpp>
#include <eepp/ui/uisprite.hpp>
#include <eepp/ui/uitextview.hpp>
#include <eepp/window/input.hpp>
@@ -154,21 +155,28 @@ void UIImageViewer::loadImageAsync( std::string_view path, bool isContents, bool
if ( format == Image::Format::Unknown )
return;
Drawable* image = nullptr;
Sprite* image = nullptr;
if ( mClosing )
return;
if ( format != Image::Format::GIF ) {
image = isContents
? TextureFactory::instance()->loadFromMemory(
reinterpret_cast<const unsigned char*>( path.c_str() ), path.size() )
: TextureFactory::instance()->loadFromFile( path );
auto tex = isContents ? TextureFactory::instance()->loadFromMemory(
reinterpret_cast<const unsigned char*>( path.c_str() ),
path.size() )
: TextureFactory::instance()->loadFromFile( path );
Sprite* sprite = Sprite::New();
sprite->createStatic( tex );
sprite->setAsTextureOwner( true );
sprite->setAsTextureRegionOwner( true );
image = sprite;
} else {
IOStream* stream = isContents
? (IOStream*)new IOStreamMemory( path.c_str(), path.size() )
: (IOStream*)new IOStreamFile( path );
Sprite* sprite = Sprite::fromGif( *stream );
sprite->setAsTextureOwner( true );
sprite->setAsTextureRegionOwner( true );
sprite->setAutoAnimate( false );
image = sprite;
delete stream;
@@ -178,12 +186,7 @@ void UIImageViewer::loadImageAsync( std::string_view path, bool isContents, bool
return;
if ( image ) {
if ( isContents )
mCurFileSize = path.size();
else
mCurFileSize = FileSystem::fileSize( path );
mCurFileSize = isContents ? path.size() : FileSystem::fileSize( path );
mCurFileType = format;
runOnMainThread( [this, image] {
@@ -309,6 +312,36 @@ Uint32 UIImageViewer::onKeyDown( const KeyEvent& event ) {
return 1;
} else if ( event.getKeyCode() == KEY_T ) {
resetImageView();
} else if ( event.getKeyCode() == KEY_X ) {
auto sprite = static_cast<Sprite*>( mImage->getDrawable() );
auto mode = sprite->getRenderMode();
if ( mode == RENDER_NORMAL )
mode = RENDER_FLIPPED;
else if ( mode == RENDER_MIRROR )
mode = RENDER_FLIPPED_MIRRORED;
else if ( mode == RENDER_FLIPPED_MIRRORED )
mode = RENDER_MIRROR;
else
mode = RENDER_NORMAL;
sprite->setRenderMode( mode );
invalidateDraw();
} else if ( event.getKeyCode() == KEY_C ) {
auto sprite = static_cast<Sprite*>( mImage->getDrawable() );
auto mode = sprite->getRenderMode();
if ( mode == RENDER_NORMAL )
mode = RENDER_MIRROR;
else if ( mode == RENDER_FLIPPED )
mode = RENDER_FLIPPED_MIRRORED;
else if ( mode == RENDER_FLIPPED_MIRRORED )
mode = RENDER_FLIPPED;
else
mode = RENDER_NORMAL;
sprite->setRenderMode( mode );
invalidateDraw();
} else if ( event.getKeyCode() == KEY_R ) {
mImage->setRotation( mImage->getRotation() + 90.0f );
} else if ( event.getKeyCode() == KEY_T ) {
resetImageView();
}
return UIWidget::onKeyDown( event );
}

View File

@@ -37,7 +37,7 @@ Uint32 UISprite::deallocSprite() {
return mNodeFlags & NODE_FLAG_FREE_USE;
}
void UISprite::setSprite( Graphics::Sprite* sprite ) {
UISprite* UISprite::setSprite( Graphics::Sprite* sprite ) {
if ( deallocSprite() )
eeSAFE_DELETE( mSprite );
@@ -45,6 +45,7 @@ void UISprite::setSprite( Graphics::Sprite* sprite ) {
mSprite->setAutoAnimate( false );
updateSize();
return this;
}
void UISprite::draw() {
@@ -104,6 +105,10 @@ Graphics::Sprite* UISprite::getSprite() const {
return mSprite;
}
Drawable* UISprite::getDrawable() const {
return mSprite;
}
Color UISprite::getColor() const {
if ( NULL != mSprite )
return mSprite->getColor();
@@ -111,20 +116,22 @@ Color UISprite::getColor() const {
return Color::White;
}
void UISprite::setColor( const Color& color ) {
UISprite* UISprite::setColor( const Color& color ) {
if ( NULL != mSprite )
mSprite->setColor( color );
setAlpha( color.a );
return this;
}
const RenderMode& UISprite::getRenderMode() const {
return mRender;
}
void UISprite::setRenderMode( const RenderMode& render ) {
UISprite* UISprite::setRenderMode( const RenderMode& render ) {
mRender = render;
invalidateDraw();
return this;
}
void UISprite::updateSize() {
@@ -180,8 +187,9 @@ const Vector2f& UISprite::getAlignOffset() const {
return mAlignOffset;
}
void UISprite::setIsSpriteOwner( const bool& dealloc ) {
UISprite* UISprite::setIsSpriteOwner( const bool& dealloc ) {
writeNodeFlag( NODE_FLAG_FREE_USE, dealloc ? 1 : 0 );
return this;
}
bool UISprite::getDeallocSprite() {

View File

@@ -66,8 +66,6 @@ Engine::Engine() :
Engine::~Engine() {
GlobalBatchRenderer::destroySingleton();
TextureAtlasManager::destroySingleton();
NinePatchManager::destroySingleton();
Scene::SceneManager::destroySingleton();
@@ -78,6 +76,8 @@ Engine::~Engine() {
FontManager::destroySingleton();
TextureAtlasManager::destroySingleton();
TextureFactory::destroySingleton();
Graphics::Renderer::destroySingleton();