Comments (7)
@aboeglin I'm testing the shared image and I get the following info about it, please could you confirm it is correct:
INFO: IMAGE: Data loaded successfully (1473x1473 | DXT5_RGBA | 1 mipmaps)
The image size looks a bit strange to me, please, could you try converting it to power-of-two?
Image and texture get loaded but I get a black image; I think the internally computed size could not be correct...
from raylib.
Definitely the issue is related to image not being POT, I tried to resize canvas to POT and now it loads correctly.
Could you test the attached file?
barbarian_scaled_to_pot.zip
from raylib.
@raysan5 yes correct, the provided image was compressed with DXT5. And your POT version does work although I'm pretty sure I tried that when exporting from texture packer already. Is it expected that non POT DXT compressed images can't be bound? Well given how the compression works it does make some sense but also I'd rather expect it to need to be like a multiple of 4 or something.
from raylib.
Is it expected that non POT DXT compressed images can't be bound?
Actually I'm not sure, I tried opening the DDS image with Paint.NET and it was able to open it but I don't know if there is some internal magic to convert it to POT or just decompress the image data on loading (raylib tries to load the compressed data as GPU compresed texture)... I reviewed the DDS loading code in raylib , and I couldn't see any issue with it, the information it gets from the DDS image header is actually the data used when trying to load it as a texture.
I'd also expect it to be, at least, multiple of 4 in size and 1473 it's not...
from raylib.
Actually it seems to work with non POT dimensions that are multiples of 4. Would it be complicated to report an error while loading the texture for DXT formats if it doesn't comply? I'm happy to look into it if given pointers.
from raylib.
Would it be complicated to report an error while loading the texture for DXT formats if it doesn't comply?
It could log some warning message if size is not multiple of 4 (point where you get that info from the file).
I'm investigating the issue and I think the data_size is not correctly calculated when image data is compressed. It needs to be reviewed more carefully. Here some reference code.
from raylib.
Should I try to open a PR to log a warning when the size isn’t a multiple of 4 for now until we try to see if we can make all sizes work?
from raylib.
Related Issues (20)
- [core] RPI Opengl - Wrong DRM connector? HOT 14
- [core] Should functions that receive enum values use the enum as argument type? HOT 5
- [core] Should the defines MAX_* be part of the public API? HOT 5
- [rcore_desktop] Can't get size of the monitor before creating a window HOT 2
- [core] rlImGUI needs a way to consume input HOT 4
- [rcore] Calls to GetRandomValue(min, max) will always return min, if not call to InitWindow() HOT 1
- [core] PLATFORM_DRM rotate screen/window HOT 10
- Maybe possibly Invalid Default Texture? HOT 5
- requesting 5.0.1 version to fix incorrect PROJECT_VERSION in 5.0 HOT 2
- [rcore] Replay record finish can't stop move (always keydown) HOT 2
- [rcore] The content can't be rendered correctly in fullscreen mode. HOT 3
- [rcore] `ToggleFullscreen()` not working as expected with HighDPI mode enabled HOT 2
- [rshape] Line drawing functions are no longer pixel-perfect HOT 1
- [rcore] Render issue when window is partially move outside of the monitor HOT 2
- [rcore] uncapped framerate not working properly with SDL platform HOT 3
- [rcore] Get keys that are pressed again, like chars HOT 1
- [rtextures.c] ColorToInt(RED) is UB HOT 12
- [raudio] WaveCrop() is broken HOT 1
- [rmodels] Read uninitialized values in `GenMeshTangents()` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raylib.