[Development] qdds image format

Иван Комиссаров abbapoh at gmail.com
Sun Apr 15 18:14:02 CEST 2018



> 15 апр. 2018 г., в 18:59, Giuseppe D'Angelo <giuseppe.dangelo at kdab.com> написал(а):
> 
> Il 15/04/2018 17:32, Иван Комиссаров ha scritto:
>> Hello, what happened to the qdds image plugin?
>> I found the note in the docs: "For security reasons, the Direct Draw Surface (DDS) handler is not built by default since Qt 5.8" but could not find any open issues.
>> Does anyone know what are those "security reasons"?
> 
> The usual amount of parsing a file without doing bounds checks, so making the user vulnerable to crashes / code execution / overflows and the like.

Are there any tickets on Jira related? All tickets i found are fixed and closed long ago (Qt5.5)

> 
>> What need to be done to return the plugin to the default build?
> 
> Build it yourself; as far as I know it's still shipped as part of qtimageformats.

I’m asking because I’m, the original author of the DDS plugin and I’m disappointed my work is thrown away:(

> 
> Apart from the quality of the implementation, there is close to zero reasons to use DDS as an image format plugin in Qt: a DDS file represents a texture, not an image (so the generic access through QImageReader isn't enough), and QImage can't represent the formats that you can store in a DDS anyhow.

The reason i started the work is to convert to/from DDS files because existing converters (PS/GIMP plugins and microsoft tool are not ideal, GIMP plugin is really buggy). However, i stucked because of the limitations of the QImageWriter API (which can’t be changedun till Qt6).
I can fix the security issues and move the dds reading/writing code to the separate lib so it can be shared with Qt 3d (i saw the duplication of the DDSHeader at least) and not be dependent on the QImageIoPlugin API which is flawed.

> 
> Note that the above has nothing to do with DDS support in Qt3D, which has never used the image format plugin.

Yep, it used the DDSHeader only when i looked at the code


More information about the Development mailing list