- 【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止]©2ch.net
232 :デフォルトの名無しさん[sage]:2015/06/08(月) 02:09:57.85 ID:DpcdWlc7 - Direct2D初めてみたばかりの初心者です。
現在、 https://code.msdn.microsoft.com/VisualC-howto-96795643 のソースを元に、ちょっといじっていまして とありえず、任意のビットマップに色をつけてみたいのですがうまくいきません。 256x256のRGBA構造を自分で操作したいのですが、どなたか教えてください。 よろしくお願いします。 myBmp()は、CreateDeviceResources(HWND hWnd)の中で呼び出しています。 ID2D1Bitmap *pBmp=NULL; void myBmp(){D2D1_SIZE_U size = {256,256};D2D1_PIXEL_FORMAT pixelFormat = D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM,D2D1_ALPHA_MODE_IGNORE); pRenderTarget->CreateBitmap(size,D2D1::BitmapProperties( pixelFormat), &pBmp); BYTE myImage[256 * 256 * 4]; for ( int y = 0; y < 256; y++ )for ( int x = 0; x < 256; x++ ){ // bgra ? myImage[x + y * 256 * 4 + 0] = 0xFF;myImage[x + y * 256 * 4 + 1] = 0x00;myImage[x + y * 256 * 4 + 2] = 0x00;myImage[x + y * 256 * 4 + 3] = 0xFF; } D2D1_RECT_U rect = D2D1::RectU(0, 0, 256, 256);pBmp->CopyFromMemory( &rect, myImage, 256*4); } void Render(HWND hWnd){HRESULT hr; hr = ::CreateDeviceResources(hWnd);if(!SUCCEEDED(hr)) return; if(pRenderTarget->CheckWindowState() & D2D1_WINDOW_STATE_OCCLUDED) return; pRenderTarget->BeginDraw();pRenderTarget->Clear(D2D1::ColorF(0.0F, 0.0F, 0.0F));pRenderTarget->DrawBitmap(pBmp,D2D1::RectF(0,0,256,256));pRenderTarget->EndDraw(); }
|