Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Load ảnh trong DirectX không được !

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    15

    Unhappy Load ảnh trong DirectX không được !



    em làm theo sách Beginning DirectX 9
    không hiểu tại sao ko load được ảnh , chạy lên màn hình trắng bóc hà


    đây là hàm render
    Code:
    void render(void)
    {
    	HRESULT hr;	// bien dung de kiem tra
    	// con tro bo dem back buffer
    	IDirect3DSurface9* backbuffer = NULL;
    	// con tro bo dem offscreen surfaces
    	IDirect3DSurface9* surface = NULL;
    	// tao bien luu giu thong tin cua anh goc
    	D3DXIMAGE_INFO imageInfo;
    
    	hr = D3DXGetImageInfoFromFile(L"image.bmp",&imageInfo);
    	// chac chan rang ham kiem tra thong tin anh da thanh cong
    	if(FAILED(hr)) return;
    
    	// kiem tra xem doi tuong Direct3D device da ton tai chua
    	if( NULL == pd3dDevice )
    		return;
    
    	// xoa toan bo bo dem ve mau xanh nuoc bien
    	pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET,
    					D3DCOLOR_XRGB( 0,0,255 ), 1.0f, 0 );
    
    	// lay con tro bo dem back buffer
    	pd3dDevice->GetBackBuffer(0,
    							0,
    							D3DBACKBUFFER_TYPE_MONO,
    							&backbuffer);
    
    	
    	// tao bo dem offscreen surface
    	hr = pd3dDevice->CreateOffscreenPlainSurface(
    				imageInfo.Width,	// be ngang cua surface duoc tao ra
    											// = chieu ngang cua image.bmp
    				imageInfo.Height,	// be cao cua surface duoc tao ra
    											// = chieu cao cua anh image.bmp
    							D3DFMT_X8R8G8B8,	//dinh dang the hien cua surface
    							D3DPOOL_DEFAULT,
    							&surface,	// con tro luu sufrace
    							NULL);
    	// kiem tra gia tri tra ve
    	if(FAILED(hr))	return;
    	// load anh nguon du lieu vao bo dem offscreen surface
    	hr = D3DXLoadSurfaceFromFile(surface,
    								NULL,
    								NULL,
    								L"image.bmp",	// anh nguon du lieu
    								NULL,
    								D3DX_DEFAULT,
    								D3DCOLOR_XRGB(255,0,0),
    								NULL);
    	if(FAILED(hr)) return;
    	
    	pd3dDevice->StretchRect(surface,
    									NULL,
    									backbuffer,
    									NULL,
    									D3DTEXF_NONE);
    
    
    	pd3dDevice->Present( NULL, NULL, NULL, NULL );
    }
    huynh nao giúp em cái

  2. #2
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    image.bmp
    Cái này bạn để ở đâu?.
    Phá toái hư không - Bạch nhật thăng thiên.

  3. #3
    Ngày gia nhập
    05 2008
    Bài viết
    15

    em để cùng nơi với file main.cpp
    ???

  4. #4
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Quái nhỉ?, bạn đưa cả project lên được không?. Mà bạn build = F5 hay build = Ctrl+Shift+B rồi ra chạy binary ngoài?.
    Phá toái hư không - Bạch nhật thăng thiên.

  5. #5
    Ngày gia nhập
    05 2008
    Bài viết
    15

    em đã tìm ra lỗi rùi ^ ^
    em mở Photoshop lên mới thấy image.bmp ko phải là ảnh bmp 8bit
    sau khi lưu lại với dạng bmp 8 bit thì đã load được ảnh

    dù sao cũng cảm ơn anh nhiều ^ ^
    thanksssss

Các đề tài tương tự

  1. Graphic Đổi màu trong DirectX với lập trình C#?
    Gửi bởi cutecat trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 24-03-2012, 10:36 AM
  2. xử lý amanion trong vc++ với DirectX
    Gửi bởi alisson trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 07-01-2011, 04:07 PM
  3. Load file .png trong DirectX
    Gửi bởi reddy trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 12
    Bài viết cuối: 23-10-2009, 08:20 PM
  4. Load 1 file anh khac bitmap bang directx
    Gửi bởi TuanAnh207 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-03-2009, 08:22 PM
  5. Xin hướng dẫn cách load hình trong VS C++ sử dụng DirectX
    Gửi bởi mysuncl trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 09-03-2008, 01:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn