- 【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止]©2ch.net
26 :デフォルトの名無しさん[sage]:2014/12/31(水) 18:09:42.76 ID:bes6lyZk - D3D9でパレット処理系の関数があったので試しているんですが、
MSDNを見てもいまいち使い方がわからないものがあるので教えてください。 IDirect3DDevice9::GetPaletteEntries、SetPaletteEntries、 GetCurrentTexturePalette、SetCurrentTexturePaletteの4つなんですが、 指定パレットの色に描画結果が変わりません。 以下のような感じで実装しています。 //頂点位置設定 UINT PaletteNo; PALETTEENTRY palette[256]; //paletteにパレット内容を設定(RGB値を設定するだけなので内容は省略します) p_IDirect3DDevice9->GetCurrentTexturePalette(&PaletteNo); p_IDirect3DDevice9->SetPaletteEntries(PaletteNo,palette);
| - 【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止]©2ch.net
27 :26[sage]:2014/12/31(水) 18:10:25.79 ID:bes6lyZk - 一気に書き込めなかったので分割投稿します
色が変わらないんですが、 使い方が間違っているのかそもそも効果がないのかわかりません。 効果がないとしたらパレットつきのテクスチャが生成できるビデオカードは既にないはずなので これらの命令が何のためにあるのか… あと、GetPaletteEntriesの使い方がわかりません。 PALETTEENTRY currentPalette[256]; p_IDirect3DDevice9->SetPaletteEntries(0,currentPalette); 上記のように実装するとメモリ共有違反エラーで落ちてしまいます。 PALETTEENTRY currentPalette[65536];としても同様でした。 この辺わかる方いませんか? ※パレット部分に関して調査しているだけなので テクスチャロードをメモリに展開→パレット修正→VRAM転送で一応対処できることはわかっています
|
|