• 大小: 789KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: Directx  

资源简介

关于简单四边形的绘制以及上色

资源截图

代码片段和文件信息

#include “Utility.h“

bool d3d::InitD3D(HINSTANCE hInstance int width int height bool windowed D3DDEVTYPE deviceType IDirect3DDevice9** device)
{
WNDCLASSEX wc = { 0 };

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(0 IDI_APPLICATION);
wc.hCursor = LoadCursor(0 IDC_ARROW);
wc.hIconSm = LoadIcon(0 IDI_APPLICATION);
wc.hbrBackground = (HBRUSH)GetStockobject(WHITE_BRUSH);
wc.lpfnWndProc = d3d::WndProc;
wc.lpszClassName = WINDOW_TITIEL;
wc.lpszMenuName = 0;

if (!RegisterClassEx(&wc))
{
::MessageBox(NULL L“Register Error“ L“news“ S_OK);
return false;
}

HWND hwnd = 0;
hwnd = ::CreateWindow(WINDOW_TITIEL WINDOW_TITIEL WS_OVERLAPPEDWINDOW
CW_USEDEFAULT CW_USEDEFAULT width height NULL NULL hInstance NULL);

if (!hwnd)
{
::MessageBox(NULL L“Create Window Error“ L“News“ MB_OKCANCEL);
return false;
}

::ShowWindow(hwnd SW_SHOW);
::UpdateWindow(hwnd);

//Start Init D3D
HRESULT hr = 0;

IDirect3D9* d3d9 = 0;

d3d9 = Direct3DCreate9(D3D_SDK_VERSION);

if (!d3d9)
{
::MessageBox(NULL L“D3D Create Error“ L“Your News“ MB_YESNOCANCEL);
return false;
}

D3DCAPS9 caps;
d3d9->GetDeviceCaps(D3DADAPTER_DEFAULT deviceType &caps);

int vp = 0;
if (caps.DevCaps&D3DDEVCAPS_HWTRANSFORMANDLIGHT)
{
vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
}
else
vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;

D3DPRESENT_PARAMETERS d3dpp;

d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
d3dpp.MultiSampleQuality = 0;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = hwnd;
d3dpp.Windowed = windowed;
d3dpp.EnableAutoDepthStencil = true;
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
d3dpp.Flags = 0;
d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

hr = d3d9->CreateDevice(
D3DADAPTER_DEFAULT
deviceType
hwnd
vp
&d3dpp
device);

if (FAILED(hr))
{
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

hr = d3d9->CreateDevice(
D3DADAPTER_DEFAULT
deviceType
hwnd
vp
&d3dpp
device);

if (FAILED(hr))
{
d3d9->Release(); 
::MessageBox(0 L“CreateDevice Error“ L“News“ MB_RETRYCANCEL);
return false;
}
}
d3d9->Release();
return true;
}

int d3d::EnterMsgLoop(bool(*ptr_display)(float timeDelta))
{
MSG msg;
::ZeroMemory(&msg sizeof(MSG));

static float lastTime = (float)timeGetTime();

while (msg.message != WM_QUIT)
{
if (::PeekMessage(&msg 0 0 0 PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
else
{
float currTime = (float)timeGetTime();
float timeDelta = (currTime - lastTi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-28 20:14  四边形的绘制\
     目录           0  2017-05-28 19:14  四边形的绘制\.vs\
     目录           0  2017-05-28 19:14  四边形的绘制\.vs\四边形的绘制\
     目录           0  2017-05-28 19:14  四边形的绘制\.vs\四边形的绘制\v14\
     文件       27136  2017-05-28 21:05  四边形的绘制\.vs\四边形的绘制\v14\.suo
     目录           0  2017-05-28 20:39  四边形的绘制\Debug\
     文件       53248  2017-05-28 21:05  四边形的绘制\Debug\四边形的绘制.exe
     文件      437536  2017-05-28 21:05  四边形的绘制\Debug\四边形的绘制.ilk
     文件     1265664  2017-05-28 21:05  四边形的绘制\Debug\四边形的绘制.pdb
     目录           0  2017-05-28 21:05  四边形的绘制\四边形的绘制\
     目录           0  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\
     文件       72266  2017-05-28 20:39  四边形的绘制\四边形的绘制\Debug\Utility.obj
     文件       76445  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\WinMain.obj
     文件     1133568  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\vc140.idb
     文件      749568  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\vc140.pdb
     文件         104  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.log
     目录           0  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\
     文件        1218  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\CL.command.1.tlog
     文件       65784  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\CL.read.1.tlog
     文件         750  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\CL.write.1.tlog
     文件        1176  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\link.command.1.tlog
     文件        3306  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\link.read.1.tlog
     文件         444  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\link.write.1.tlog
     文件         205  2017-05-28 21:05  四边形的绘制\四边形的绘制\Debug\四边形的绘制.tlog\四边形的绘制.lastbuildstate
     文件        3105  2017-05-28 20:29  四边形的绘制\四边形的绘制\Utility.cpp
     文件        1218  2017-05-28 20:39  四边形的绘制\四边形的绘制\Utility.h
     文件        3005  2017-05-28 21:05  四边形的绘制\四边形的绘制\WinMain.cpp
     文件        7878  2017-05-28 20:25  四边形的绘制\四边形的绘制\四边形的绘制.vcxproj
     文件        1159  2017-05-28 20:25  四边形的绘制\四边形的绘制\四边形的绘制.vcxproj.filters
     文件        1336  2017-05-28 19:14  四边形的绘制\四边形的绘制.sln

评论

共有 条评论