Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro
Commits
fb5f9235
Commit
fb5f9235
authored
Feb 09, 2026
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'mercury/patch-image-resize' into develop
parents
24930e8a
786e3cf2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
22 deletions
+42
-22
gframe/image_manager.cpp
gframe/image_manager.cpp
+34
-18
gframe/image_resizer.cpp
gframe/image_resizer.cpp
+8
-4
No files found.
gframe/image_manager.cpp
View file @
fb5f9235
...
...
@@ -120,10 +120,12 @@ void ImageManager::ResizeTexture() {
void
ImageManager
::
resizeImage
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
,
bool
use_threading
)
{
imageResizer
.
resize
(
src
,
dest
,
use_threading
);
}
/** Convert image to texture, resizing if needed.
/**
* Convert image to texture, resizing if needed.
* @param name Texture name (Irrlicht texture key).
* @param srcimg Source image; will be dropped by this function.
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`). */
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`).
*/
irr
::
video
::
ITexture
*
ImageManager
::
addTexture
(
const
char
*
name
,
irr
::
video
::
IImage
*
srcimg
,
irr
::
s32
width
,
irr
::
s32
height
)
{
if
(
srcimg
==
nullptr
)
return
nullptr
;
...
...
@@ -139,8 +141,10 @@ irr::video::ITexture* ImageManager::addTexture(const char* name, irr::video::IIm
srcimg
->
drop
();
return
texture
;
}
/** Load image from file and convert to texture.
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`). */
/**
* Load image from file and convert to texture.
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`).
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureFromFile
(
const
char
*
file
,
irr
::
s32
width
,
irr
::
s32
height
)
{
irr
::
video
::
IImage
*
img
=
driver
->
createImageFromFile
(
file
);
if
(
img
==
nullptr
)
{
...
...
@@ -150,9 +154,11 @@ irr::video::ITexture* ImageManager::GetTextureFromFile(const char* file, irr::s3
mysnprintf
(
name
,
"%s/%d_%d"
,
file
,
width
,
height
);
return
addTexture
(
name
,
img
,
width
,
height
);
}
/** Load card picture from `expansions` or `pics` folder.
/**
* Load card picture from `expansions` or `pics` folder.
* Files in the expansions directory have priority, allowing custom pictures to be loaded without modifying the original files.
* @return Image pointer. Must be dropped after use. */
* @return Image pointer. Must be dropped after use.
*/
irr
::
video
::
IImage
*
ImageManager
::
GetImage
(
int
code
)
{
char
file
[
256
];
mysnprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
...
...
@@ -163,8 +169,10 @@ irr::video::IImage* ImageManager::GetImage(int code) {
}
return
img
;
}
/** Load card picture.
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`). */
/**
* Load card picture.
* @return Texture pointer. Remove via `driver->removeTexture` (do not `drop`).
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
,
irr
::
s32
width
,
irr
::
s32
height
)
{
irr
::
video
::
IImage
*
img
=
GetImage
(
code
);
if
(
img
==
nullptr
)
{
...
...
@@ -174,9 +182,11 @@ irr::video::ITexture* ImageManager::GetTexture(int code, irr::s32 width, irr::s3
mysnprintf
(
name
,
"pics/%d/%d_%d"
,
code
,
width
,
height
);
return
addTexture
(
name
,
img
,
width
,
height
);
}
/** Load managed card picture texture.
/**
* Load managed card picture texture.
* @param fit Resize to fit scale if true.
* @return Texture pointer. Should NOT be removed nor dropped. */
* @return Texture pointer. Should NOT be removed nor dropped.
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
,
bool
fit
)
{
if
(
code
==
0
)
return
fit
?
tUnknownFit
:
tUnknown
;
...
...
@@ -200,18 +210,20 @@ irr::video::ITexture* ImageManager::GetTexture(int code, bool fit) {
else
return
fit
?
tUnknownFit
:
tUnknown
;
}
/** Load managed card picture texture with zoom.
* @return Texture pointer. Should NOT be removed nor dropped. */
/**
* Load managed card picture texture with zoom.
* @return Texture pointer. Should NOT be removed nor dropped.
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetBigPicture
(
int
code
,
float
zoom
)
{
if
(
code
==
0
)
return
tUnknown
;
return
tUnknown
Fit
;
if
(
tBigPicture
!=
nullptr
)
{
driver
->
removeTexture
(
tBigPicture
);
tBigPicture
=
nullptr
;
}
irr
::
video
::
IImage
*
img
=
GetImage
(
code
);
if
(
img
==
nullptr
)
{
return
tUnknown
;
return
tUnknown
Fit
;
}
char
name
[
256
];
mysnprintf
(
name
,
"pics/%d/big"
,
code
);
...
...
@@ -261,8 +273,10 @@ int ImageManager::LoadThumbThread() {
}
return
0
;
}
/** Load managed card thumbnail texture.
* @return Texture pointer. Should NOT be removed nor dropped. */
/**
* Load managed card thumbnail texture.
* @return Texture pointer. Should NOT be removed nor dropped.
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureThumb
(
int
code
)
{
if
(
code
==
0
)
return
tUnknownThumb
;
...
...
@@ -308,8 +322,10 @@ irr::video::ITexture* ImageManager::GetTextureThumb(int code) {
else
return
tUnknownThumb
;
}
/** Load managed duel field texture.
* @return Texture pointer. Should NOT be removed nor dropped. */
/**
* Load managed duel field texture.
* @return Texture pointer. Should NOT be removed nor dropped.
*/
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureField
(
int
code
)
{
if
(
code
==
0
)
return
nullptr
;
...
...
gframe/image_resizer.cpp
View file @
fb5f9235
...
...
@@ -43,8 +43,10 @@ struct StbSamplerCache {
}
};
/** Scale image using stb_image_resize2.
* Returns true on success, false on failure or unsupported format. */
/**
* Scale image using stb_image_resize2.
* Returns true on success, false on failure or unsupported format.
*/
bool
ImageResizer
::
imageScaleSTB
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
)
{
if
(
!
src
||
!
dest
)
return
false
;
...
...
@@ -111,8 +113,10 @@ bool ImageResizer::imageScaleSTB(irr::video::IImage* src, irr::video::IImage* de
return
ok
!=
0
;
}
/** Scale image using nearest neighbor anti-aliasing.
* Function by Warr1024, from https://github.com/minetest/minetest/issues/2419, modified. */
/**
* Scale image using nearest neighbor anti-aliasing.
* Function by Warr1024, from https://github.com/minetest/minetest/issues/2419, modified.
*/
void
ImageResizer
::
imageScaleNNAA
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
,
bool
use_threading
)
{
const
auto
&
srcDim
=
src
->
getDimension
();
const
auto
&
destDim
=
dest
->
getDimension
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment