トップページ > 記事閲覧
DDSファイル読み込み時にRとBの色が反転する
名前:まるまる 日時: 2026/08/08 12:45

DXライブラリにて、mipmap付きのDDSファイル(D3DFMT_A8R8G8B8)を読み込むとRとBの色が反転します。 こちらDXライブラリの仕様でしょうか? ---------- #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int SoftImage; int Graph; ChangeWindowMode(TRUE); SetGraphMode(800, 600, 32); if( DxLib_Init() == -1 ){ return -1; } SetDrawScreen(DX_SCREEN_BACK); // mipmap付き A8R8G8B8 DDSを読み込む SoftImage = LoadARGB8ColorSoftImage("test.dds"); if( SoftImage == -1 ){ DxLib_End(); return -1; } // SoftImageからグラフィックハンドルを作成 Graph = CreateGraphFromSoftImage(SoftImage); DeleteSoftImage(SoftImage); if( Graph == -1 ){ DxLib_End(); return -1; } while( ProcessMessage() == 0 ){ if( CheckHitKey(KEY_INPUT_ESCAPE) != 0 ){ break; } ClearDrawScreen(); DrawGraph(0, 0, Graph, TRUE); ScreenFlip(); } DeleteGraph(Graph); DxLib_End(); return 0; } ---------- ・OS:Windows11 25H2 ・開発環境:VisualStudio2019 ・DXライブラリバージョン:Ver3.24f LoadARGB8ColorSoftImage("test.dds") ↓ CreateGraphFromSoftImage() のように、読み込んだSoftImageをそのまま直接CreateGraphすると色が反転するようです。 LoadARGB8ColorSoftImage()で読み込んだイメージとは別に、MakeARGB8ColorSoftImage()で同サイズのSoftImageを別途作成し、 画素データをmemcpy()などでコピーしてから後者をCreateGraphFromSoftImage()に渡すことで、正常に動作します。  ※手動でRとBを入れ替えなくても、単純に画素データをコピーするだけで正常に動作します。 また、mipmapなしの同形式DDSでは現象は発生しません。 ご確認よろしくお願いします。
メンテ

Page: 1 |

Re: DDSファイル読み込み時にRとBの色が反転する ( No.1 )
名前:管理人 日時:2026/08/09 16:34

手元の環境でもmipmap付きのDDSファイルで本現象を確認しました すみません、mipmap付きDDSファイルを読み込んだ場合のみ読み込んだ画像のカラーフォーマットを テクスチャのカラーフォーマットに変換する処理が行われないというバグがありました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: DDSファイル読み込み時にRとBの色が反転する ( No.2 )
名前:まるまる(解決) 日時:2026/08/13 11:24

確認ありがとうございます。 修正版 3.250 で問題が解決していることを確認しました。 ご対応ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存