목록Programing (133)
공부중
void D3D12HelloWindow::OnInit() { LoadPipeline(); LoadAssets(); } 길고긴 LoadPipeLine함수가 끝나고 다음은 LoadAssets함수의 내부를 살펴보자. // sample asset들 불러오기 void D3D12HelloWindow::LoadAssets() { // 명령 리스트 생성 ThrowIfFailed(m_device->CreateCommandList(0 ,D3D12_COMMAND_LIST_TYPE_DIRECT ,m_commandAllocator.Get() ,nullptr ,IID_PPV_ARGS(&m_commandList))); /* 명령리스트는 기록 상태에서 생성되지만 아무것도 없다. 아직 기록하지는 않고 메인 루프는 닫히기를 기대하므로 ..
몸이 다 나은건 아니지만 틈틈히 공부는 해야되지 않겠는가 ㅠ 몸도 안좋은데 게으름도 넘쳐나니 ... 아무튼 이번코드는 다음과 같다. // 이 샘플은 전체 화면 전환을 지원하지 않습니다. ThrowIfFailed(factory->MakeWindowAssociation(Win32Application::GetHwnd(), DXGI_MWA_NO_ALT_ENTER)); ThrowIfFailed(swapChain.As(&m_swapChain)); m_frameIndex = m_swapChain->GetCurrentBackBufferIndex(); // 설명자 힙(descriptor heaps)을 작성하십시오. { // 렌더 타겟 뷰 (RTV) 서술자 힙을 기술하고 생성하십시오. D3D12_DESCRIPTOR_HEA..
// 명령 대기열을 설명하고 작성하십시오. D3D12_COMMAND_QUEUE_DESC queueDesc = {}; queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; ThrowIfFailed(m_device->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&m_commandQueue))); 명령 대기열(Command Queue)부분인데 . 이 튜토리얼에서는 Init만 하고 딱히 명령을 내리는 부분이 없으므로(삼각형도 띄우지 않음) 자세한 내용은 다음 튜토리얼에서 때가 되면 정리해볼 예정이다. // 스왑 체인(swap chain)을 기술하고 생성하십시..
ComPtr factory; ThrowIfFailed(CreateDXGIFactory2(dxgiFactoryFlags, IID_PPV_ARGS(&factory))); if (m_useWarpDevice) { ComPtr warpAdapter; ThrowIfFailed(factory->EnumWarpAdapter(IID_PPV_ARGS(&warpAdapter))); ThrowIfFailed(D3D12CreateDevice( warpAdapter.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device) )); } else { ComPtr hardwareAdapter; GetHardwareAdapter(factory.Get(), &hardwareAdapter); Thr..
UINT dxgiFactoryFlags = 0; #if defined(_DEBUG) // 디버그 레이어를 활성화합니다 (그래픽 도구의 "선택적 기능"필요). // 참고 : 장치 생성 후 디버그 레이어를 활성화하면 활성 장치가 무효화됩니다. { ComPtr debugController; if (SUCCEEDED(D3D12GetDebugInterface(IID_PPV_ARGS(&debugController)))) { debugController->EnableDebugLayer(); // 추가 디버그 레이어를 사용합니다. dxgiFactoryFlags |= DXGI_CREATE_FACTORY_DEBUG; } } #endif #if defined를 가지고 디버그(_DEBUG)모드에서 #endif 까지의 코드를 ..
이어서... 다시 Main.cpp를 살펴보고 Run 멤버 함수를 살펴보자. //********************************************************* // //FileName : Main.cpp // //********************************************************* #include "stdafx.h" #include "D3D12HelloWindow.h" _Use_decl_annotations_ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { D3D12HelloWindow sample(1280, 720, L"D3D12 Hello Window"); re..
본 코드는 모두 Microsoft의 DirectX-Graphics-Samples의 'Hello Wolrd Sample'를 분석? 번역? 암튼 공부해보려고 작성하는 문서입니다. 제 정리가 답이고 정의고 올바른것이고 진리이다 라고 읽지 마시고 틀린거 있으면좀 알려주세요. ㅠㅠ 코드는 모두 https://github.com/Microsoft/DirectX-Graphics-Samples 에서 다운로드가 가능합니다. 정리하는 모든 프로젝트들은 UWP가 아니고 Desktop 튜토리얼이다. ProjectName : D3D12HelloWindow ProjectFile : 하단 참조. 윈도우를 띄우고 D3D12를 Init까지 해보는 튜토리얼이다. 처음인만큼 코드가 굴러가는 순서대로 일단 정리해볼 예정. //*******..
몇일만에 잊고 있었던 무료 강의를 마저 들으며 실습하려고 STS를 실행 하니까 위와 같은 메시지가 떳다Java was started but returned exit code=13 아마도... 최근에 JDK를 몇번 재설치하고 최신버전으로 올리느랴 삽질좀 했는데 그것 관련 해서 이런 문제가 발생한것 같다. 일단 STS 실행 폴더란에 configuration에 들어가면 로그파일이 있는데 이것을 보고 판단해 보도록 하자. 로그를 보아하니 32비트 라이브러리를 64비트의 JVM에서 로드 할수 없다고 그러는것을 보니...과거에 설치한 JDK와 STS가 망할 32비트버전이였나 보다 -_-...그리고 재설치한 JDK는 당연히 x64로 설치해서 위와같은 문제가 발생한듯...? 결론은 STS를 64비트용으로 다시 다운받으..