用d3d9合并jpeg
来源:互联网 发布:哈曼卡顿和惠威 知乎 编辑:程序博客网 时间:2024/05/23 01:26
CComPtr<IDirect3D9> pD3D = Direct3DCreate9 ( D3D_SDK_VERSION ) ; if ( pD3D == NULL ) { return NSST_ERROR_DEFAULT; } OUTPUT_DEBUG("NSSTCommonCombineJPEG start"); D3DXIMAGE_INFO SrcInfo1; D3DXIMAGE_INFO SrcInfo2; D3DXGetImageInfoFromFile(base::SysUTF8ToWide(pic_base).c_str(),&SrcInfo1); D3DXGetImageInfoFromFile(base::SysUTF8ToWide(pic_add).c_str(),&SrcInfo2); D3DPRESENT_PARAMETERS present_params; ZeroMemory ( &present_params, sizeof(present_params) ) ; present_params.BackBufferFormat = D3DFMT_UNKNOWN ; present_params.Windowed = TRUE ; present_params.SwapEffect = D3DSWAPEFFECT_DISCARD ; present_params.BackBufferCount = 1; present_params.SwapEffect = D3DSWAPEFFECT_COPY; present_params.BackBufferWidth = SrcInfo1.Width; present_params.BackBufferHeight = SrcInfo1.Height; D3DCAPS9 caps ; DWORD BehaviorFlags = D3DCREATE_SOFTWARE_VERTEXPROCESSING ; HRESULT hr = pD3D->GetDeviceCaps ( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps ) ; if ( SUCCEEDED(hr) ) { if ( caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT ) { BehaviorFlags = D3DCREATE_HARDWARE_VERTEXPROCESSING ; } } CComPtr<IDirect3DDevice9> pDevice ; hr = pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd, BehaviorFlags, &present_params, &pDevice ) ; if (FAILED(hr)) { return NSST_ERROR_DEFAULT; } CComPtr<IDirect3DTexture9> texture1; if (FAILED(D3DXCreateTextureFromFileEx(pDevice, base::SysUTF8ToWide(pic_base).c_str(), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_DEFAULT, 0, NULL, NULL, &texture1))) { return NSST_SUCCESS; } CComPtr<IDirect3DTexture9> texture2; if (FAILED(D3DXCreateTextureFromFileEx(pDevice, base::SysUTF8ToWide(pic_add).c_str(), D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_POINT, D3DX_DEFAULT, 0, NULL, NULL, &texture2))) { return NSST_SUCCESS; } pDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0 ); pDevice->BeginScene(); DrawTexture(pDevice,texture1,0,0,(float)SrcInfo1.Width,(float)SrcInfo1.Height,0xffffffff); DrawTexture(pDevice,texture2,(float)pic2_rc->x,(float)pic2_rc->y,(float)pic2_rc->width,(float)pic2_rc->height,0xffffffff); pDevice->EndScene(); CComPtr<IDirect3DSurface9> pBackBuffer; pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer); D3DXSaveSurfaceToFile(base::SysUTF8ToWide(pic_result).c_str(),D3DXIFF_JPG,pBackBuffer,NULL,NULL);
0 0
- 用d3d9合并jpeg
- D3D9 CAPS
- [D3D9] 红龙书
- JPEG
- jpeg
- JPEG
- JPEG
- JPEG
- jpeg
- JPEG
- D3D9 必须的lib
- 深入理解D3D9
- 深入理解D3D9
- 深入理解DirectX D3D9
- 深入理解DirectX D3D9
- 深入理解DirectX D3D9
- D3D9 vs D3D1x
- D3d9的一些更新
- [Oracle命令] Oracle数据库几种启动和关闭方式
- 使用HTML5的两个api,前端js完成图片压缩。
- Android 4.4 meminfo 实现分析
- 傅老师课堂:Oracle高级查询之OVER (PARTITION BY ..)
- sqlite
- 用d3d9合并jpeg
- poj-2318-TOYS-计算几何
- 500G的硬盘坏了怎么找回文件
- Java面向对象之继承
- 手动生成AWR报告
- 线程之路一:CreateThread()和-beginthreadex()
- Genereate a histogram of how many times each unique word is used in that test
- 在 Android* 平台上设置原生 OpenGL ES*
- pentaho5.0.1将数据库移植成mysql