안녕하세요~

안녕하세요 새로 팀 블로그 cosmicmind의 팀원이 된 나츠코 라고 합니다.

별 다른 능력은 없지만 앞으로 잘 부탁 드립니다~

[Backup] Direct3D강의 백업노트 (3장. Vertices)

이태성교수님의 강의를 듣고

정점렌더링을 통해 삼각형을 그리는 클래스를 2장 프레임워크설계와 같이 이용하여 만들어보았습니다.

1. Triangle.h


 1 #pragma once 
  2 #include <d3d9.h> 
  3 #include <d3dx9math.h> 
  4  
  5 struct CUSTOMVERTEX 
  6 { 
  7     FLOAT x,y,z,rhw; 
  8     DWORD diffuse;  
  9 }; 
 10 #define COSDEF_D3DVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
 11 class CTriangle 
 12 { 
 13 private: 
 14     LPDIRECT3DVERTEXBUFFER9 m_pVB; 
 15  
 16      
 17 public: 
 18     LPDIRECT3DDEVICE9 m_pd3dDevice; 
 19     CUSTOMVERTEX* m_ptmpCV; 
 20     UINT m_nLength; 
 21  
 22     HRESULT Init(LPDIRECT3DDEVICE9 pd3dDevice); 
 23     void Render(); 
 24     void Release(); 
 25  
 26 public: 
 27     CTriangle(void); 
 28     CTriangle(CUSTOMVERTEX *m_pCV); 
 29     ~CTriangle(void); 
 30 }; 
 31 


2. Triangle.cpp



  1 #include "Triangle.h" 
  2  
  3 HRESULT CTriangle::Init(LPDIRECT3DDEVICE9 pd3dDevice) 
  4 { 
  5     m_pd3dDevice = pd3dDevice; 
  6  
  7     UINT m_nVertLength = m_nLength*sizeof(CUSTOMVERTEX); 
  8     if(FAILED(m_pd3dDevice->CreateVertexBuffer(m_nVertLength,0,COSDEF_D3DVERTEX,D3DPOOL_DEFAULT,&m_pVB,NULL))) 
  9         return E_FAIL; 
 10  
 11     VOID* pTmpVertices; 
 12      
 13     if(FAILED(m_pVB->Lock(0,m_nVertLength,(void**)&pTmpVertices,0))) 
 14         return E_FAIL; 
 15      
 16     memcpy(pTmpVertices, m_ptmpCV, m_nVertLength); 
 17      
 18     m_pVB->Unlock(); 
 19  
 20 } 
 21  
 22 VOID CTriangle::Render() 
 23 { 
 24     m_pd3dDevice->SetStreamSource(0,m_pVB,0,sizeof(CUSTOMVERTEX)); 
 25     m_pd3dDevice->SetFVF(COSDEF_D3DVERTEX); 
 26     m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,1); 
 27 } 
 28  
 29 VOID CTriangle::Release() 
 30 { 
 31     if(m_pVB != NULL) 
 32         m_pVB->Release(); 
 33 } 
 34  
 35 CTriangle::CTriangle(void) 
 36 { 
 37 } 
 38  
 39 CTriangle::CTriangle(CUSTOMVERTEX* m_pCV) 
 40 { 
 41     m_nLength = sizeof(&m_pCV); 
 42     m_ptmpCV = m_pCV; 
 43 } 
 44  
 45  
 46 CTriangle::~CTriangle(void) 
 47 { 
 48 } 
 49 


3. GameEdu01.h

  1 #pragma once 
  2 #include "d3dapp.h" 
  3 #include "Triangle.h" 
  4  
  5 class CGameEdu01 : public CD3DApp
  6 { 
  7     virtual void OnInitialize();
  8     virtual void OnRender();
  9     virtual void OnUpdate();
 10     virtual void OnRelease();
 11  
 12 private: 
 13     CTriangle* m_cTri; 
 14 public: 
 15     CGameEdu01(void); 
 16     ~CGameEdu01(void); 
 17 };


4. GameEdu01.cpp

  1 #include "GameEdu01.h" 
  2  
  3  
  4 VOID CGameEdu01::OnInitialize() 
  5 { 
  6     //D3D초기화 후 가장먼저 실행되는 부분(1회만 실행) 
  7     //Initialize->MainLoop(DrawLoop, UpdateLoop(Logic))->Finalize 
  8     CUSTOMVERTEX m_stCV[]={{150.f, 50.f, 0.5f, 1.f, D3DCOLOR_ARGB(255,255,0,0)}, 
  9                             {250.f, 250.f, 0.5f, 1.f, D3DCOLOR_ARGB(255,0,255,0)}, 
 10                             {50.f, 250.f, 0.5f, 1.f, D3DCOLOR_ARGB(255,0,0,255)}}; 
 11     //정점데이터는 시계방향 순서로 넣어야 컬링의 대상이 되지 않는다. 
 12     m_cTri = new CTriangle(m_stCV); 
 13      
 14     m_cTri->Init(m_pd3dDevice); 
 15 } 
 16  
 17 VOID CGameEdu01::OnRender() 
 18 { 
 19     m_cTri->Render(); 
 20 } 
 21  
 22 VOID CGameEdu01::OnUpdate() 
 23 { 
 24 } 
 25  
 26 VOID CGameEdu01::OnRelease() 
 27 { 
 28 } 
 29  
 30  
 31  
 32 //생성자, 소멸자 
 33  
 34 CGameEdu01::CGameEdu01(void) 
 35 { 
 36 } 
 37  
 38  
 39 CGameEdu01::~CGameEdu01(void) 
 40 { 
 41 } 
 42 

사키 아치카편 4컷만화

일본 웹사이트 돌아다니다가 줍게 됐습니다.


걍 번역해봤어요


 



 


 




아마 사키에선 사키비요리 라고 정식 4컷만화가 정발된 것으로 알고 있어요…

[유머] 팀블로그 분들과의 드립카톡

때는 바야흐로 수능(대학수학능력평가)가 일주일대로 남은 어느 날.

강아지 ka 군은 자신의 인생을 되돌아보며 기나긴 한숨을 쉰다.

이 때, 한 인생상담과 치유, 갱생의 신, 이른바 죽은자도 되살린다는 전설을 가질정도의 ‘화타’와도 견줄 ‘만사귀’님이 등장한다.



갱생의 신도 인생 공장초기화는 불가능 한 것 같습니다.