'Programming'에 해당되는 글 4건

  1. 2015.06.20 openCV additional dependency
  2. 2015.06.20 CreateDevice.cpp
  3. 2015.06.20 Additional Dependencies
  4. 2015.06.20 winAPI Start
Programming2015. 6. 20. 12:34

visual studio 2013 기준.


추가종속성

opencv_calib3d249d.lib

opencv_contrib249d.lib

opencv_core249d.lib

opencv_features2d249d.lib

opencv_flann249d.lib

opencv_gpu249d.lib

opencv_highgui249d.lib

opencv_imgproc249d.lib

opencv_legacy249d.lib

opencv_ml249d.lib

opencv_nonfree249d.lib

opencv_objdetect249d.lib

opencv_ocl249d.lib

opencv_photo249d.lib

opencv_stitching249d.lib

opencv_superres249d.lib

opencv_ts249d.lib

opencv_video249d.lib

opencv_videostab249d.lib


포함디렉터리

C:\opencv\build\include

C:\opencv\build\include\opencv

C:\opencv\build\include\opencv2


라이브러리디렉터리

C:\opencv\build\x86\vc12\lib


링커-추가라이브러리디렉터리

C:\opencv\build\x86\vc12\lib


Posted by 레라리
Programming/DirectX2015. 6. 20. 12:28

/**-----------------------------------------------------------------------------

* \brief 디바이스 생성

* 파일: CreateDevice.cpp

*

* 설명: D3D 디바이스를 생성하고, 이를 사용해서 화면을 지우는 방법에 대해서

*       공부하게 된다.

*

**-----------------------------------------------------------------------------

*/

/// Direct3D9 사용하기 위한 헤더

#include <d3d9.h>

 

/**-----------------------------------------------------------------------------

* 전역변수

*------------------------------------------------------------------------------

*/

LPDIRECT3D9             g_pD3D = NULL; /// D3D 디바이스를 생성할 D3D객체변수

LPDIRECT3DDEVICE9       g_pd3dDevice = NULL; /// 렌더링에 사용될 D3D디바이스

 

/**-----------------------------------------------------------------------------

* Direct3D 초기화

*------------------------------------------------------------------------------

*/

HRESULT InitD3D(HWND hWnd)

{

/// 디바이스를 생성하기위한 D3D객체 생성

if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))

return E_FAIL;

 

D3DPRESENT_PARAMETERS d3dpp;                /// 디바이스 생성을 위한 구조체

ZeroMemory(&d3dpp, sizeof(d3dpp));        /// 반드시 ZeroMemory()함수로 미리 구조체를 깨끗이 지워야 한다.

d3dpp.Windowed = TRUE;                      /// 창모드로 생성

d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;   /// 가장 효율적인 SWAP효과

d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;    /// 현재 바탕화면 모드에 맞춰서 후면버퍼를 생성

 

/// 디바이스를 다음과 같은 설정으로 생성한다.

/// 1. 디폴트 비디오카드를 사용(대부분은 비디오카드가 1 이다.)

/// 2. HAL디바이스를 생성한다.(HW가속장치를 사용하겠다는 의미)

/// 3. 정점처리는 모든 카드에서 지원하는 SW처리로 생성한다.(HW 생성할경우 더욱 높은 성능을 낸다.)

if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,

D3DCREATE_SOFTWARE_VERTEXPROCESSING,

&d3dpp, &g_pd3dDevice)))

{

return E_FAIL;

}

 

/// 디바이스 상태정보를 처리할경우 여기에서 한다.

 

return S_OK;

}

 

/**-----------------------------------------------------------------------------

* 초기화된 객체들을 소거한다.

*------------------------------------------------------------------------------

*/

VOID Cleanup()

{

if (g_pd3dDevice != NULL)

g_pd3dDevice->Release();

 

if (g_pD3D != NULL)

g_pD3D->Release();

}

 

/**-----------------------------------------------------------------------------

* 화면을 그린다.

*------------------------------------------------------------------------------

*/

VOID Render()

{

if (NULL == g_pd3dDevice)

return;

 

/// 후면버퍼를 파란색(0,0,255)으로 지운다.

g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 255), 1.0f, 0);

 

/// 렌더링 시작

if (SUCCEEDED(g_pd3dDevice->BeginScene()))

{

/// 실제 렌더링 명령들이 나열될

 

/// 렌더링 종료

g_pd3dDevice->EndScene();

}

 

/// 후면버퍼를 보이는 화면으로!

g_pd3dDevice->Present(NULL, NULL, NULL, NULL);

}

 

/**-----------------------------------------------------------------------------

* 윈도우 프로시져

*------------------------------------------------------------------------------

*/

LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

switch (msg)

{

case WM_DESTROY:

Cleanup();

PostQuitMessage(0);

return 0;

 

case WM_PAINT:

Render();

ValidateRect(hWnd, NULL);

return 0;

}

 

return DefWindowProc(hWnd, msg, wParam, lParam);

}

 

/**-----------------------------------------------------------------------------

* 프로그램의 시작점

*------------------------------------------------------------------------------

*/

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT)

{

/// 윈도우 클래스 등록

WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,

GetModuleHandle(NULL), NULL, NULL, NULL, NULL,

"D3D Tutorial", NULL };

RegisterClassEx(&wc);

 

/// 윈도우 생성

HWND hWnd = CreateWindow("D3D Tutorial", "D3D Tutorial 01: CreateDevice",

WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,

GetDesktopWindow(), NULL, wc.hInstance, NULL);

 

/// Direct3D 초기화

if (SUCCEEDED(InitD3D(hWnd)))

{

/// 윈도우 출력

ShowWindow(hWnd, SW_SHOWDEFAULT);

UpdateWindow(hWnd);

 

/// 메시지 루프

MSG msg;

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

 

/// 등록된 클래스 소거

UnregisterClass("D3D Tutorial", wc.hInstance);

return 0;

}

 

 

 


'Programming > DirectX' 카테고리의 다른 글

Additional Dependencies  (0) 2015.06.20
Posted by 레라리
Programming/DirectX2015. 6. 20. 12:27



상대경로


링커(디버그)

d3d9.lib;d3dx9d.lib;winmm.lib;xinput.lib;


링커(릴리즈)

d3d9.lib;d3dx9.lib;winmm.lib;xinput.lib;


포함 디렉터리

$(DXSDK_DIR)\Include;


라이브러리 디렉터리

$(DXSDK_DIR)\Lib\x86;



절대 경로





'Programming > DirectX' 카테고리의 다른 글

CreateDevice.cpp  (0) 2015.06.20
Posted by 레라리
Programming/WinAPI2015. 6. 20. 12:26

#include<Windows.h>

 

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

HINSTANCE g_hInst;

HWND hWndMain;

LPCTSTR lpszClass = TEXT("Class");

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)

{

HWND hWnd;

MSG Message;

WNDCLASS WndClass;

g_hInst = hInstance;

 

WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

WndClass.hInstance = hInstance;

WndClass.lpfnWndProc = WndProc;

WndClass.lpszClassName = lpszClass;

WndClass.lpszMenuName = NULL;

WndClass.style = CS_HREDRAW | CS_VREDRAW;

RegisterClass(&WndClass);

 

hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL);

ShowWindow(hWnd, nCmdShow);

 

while (GetMessage(&Message, NULL, 0, 0))

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return (int)Message.wParam;

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

 

switch (iMessage)

{

case WM_CREATE:

hWndMain = hWnd;

return 0;

case WM_PAINT:

hdc = BeginPaint(hWnd, &ps);

EndPaint(hWnd, &ps);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

 

}

return(DefWindowProc(hWnd, iMessage, wParam, lParam));

}


Posted by 레라리