디바이스초기화 DirectX 2012. 11. 16. 19:41
 


HRESULT Create Device
{
 UINT Adapter,  // 디바이스를 생성할 화면서 순서번호 대부분 모니터가한개인경우 D3DADAPTER_DEFAULT설정
 D3DEVTYPE DeviceType, //출력디바이스를 결정 D3DDEVTYPE_HAL,D3DDEVTYPR_SW,D3DDEVTYPE_REF가있다. HAL은 하드웨어가속을 지원하는 디바이스
 HWND hFocusWindow,  //디바이스가 출력할 윈도우핸들. 전체화면일경우 최상위 윈도우만 가능하다.
 DWORD BehaviorFlags, //D3DCREATE_HARDWARE_VERTEXPROCESSING과 D3DCREATE_SOFTWARE_VERTEXPROCESSING이 가장중요.
                                  //셰이더를 지원할떄 하드웨어 가속을 할껀진 소프트웨어적 지원을 할것인지를 결정
 D3DPRESENT_PARAMETERS* pPresentationParameters, //디바이스 생성시 선언한 구조체 포인터
 IDirect3DDevice9** ppReturnDeviceInterface //등록된 디바이스를 얻어오는값 IDirect3DDevice9의 인터페이스를 갖고있는 포인터가 담겨져 돌아온다.

}
//사용예
LPDIRECT3D9             g_pD3D = NULL;
LPDIRECT3DDEVICE9  g_pd3dDevice = NULL;
if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,
                                                D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pd3dDevice)));
{
  return E_FAIL;
}

'DirectX' 카테고리의 다른 글

Rendering  (0) 2012.12.06
D3DDEVTYPE  (0) 2012.12.06
DX설정방법  (0) 2012.11.16

void main()
{
   p= &ST;
   printf("학번입력");
   scanf("%d"&p->id);

   printf("이름입력");
   scanf("%s",&p->name);
 
  printft("국,영,수 입력");
  scanf("%d %d %d",&p->kor,&p->eng,&p->math);

  printft("집주소");
  scanf("%s",&p->address);

  printf("학번: %d", p->id);
  printf("이름:%s", p->name);
  printf("국,영,수 성적: %d %d %d",p->kor, p->eng, p->math);
  printf("집주소:%s",p->address);


※scanf("%s",p->name); → 띄어쓰기로 공백입력시 null값으로 인식, 띄어쓰기 전까지만 기억함
    gets(p->name); → 한번만입력했는데 enter키가 자동으로 들어감 gets() 전에 scanf로
                                입력받을때 enter키가 버퍼에 남아있어서 gets()가 받아서 name에 넣어버림
    getch(p->name); → enter값을 받아서 저장도안하고 사라짐

⊙해결방법: 버퍼 초기화 fflush(stdin);
                     
-   fflush(stdin);
    gets(p->name);

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

typedef  (0) 2011.08.17
구조체와 배열  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17

#include<stdio.h>
struct student{
   int id;
   char name[20];
   int eng,kor,math;
   char address[100];
};

void main()
{
   struct student ST[2]= {{201154321,"hong gil dong",90,91,92."서울 강남구 대치동"},
                                  {201112345,"kang gil dong",98,80,86,"서울 종로구 혜화동"}};

for(int i=0; i<2; i++)
{
   printf("ST구조체의 크기: %d \n",sizeof(ST));
   printf("ST학번: %d" ,ST[i].id);
   printf("ST이름: %s" ,ST[i].name);
                   .
                   .
                   .
}



*scnaf("%d",&ST.id) ← 로값을 입력받을수 있음.
  ST.id= 12345 형식으로 값직접대입가능.

구조체의 크기는 136
 136byte 가 2개선언 →ST[0] , ST[1]

'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

typedef  (0) 2011.08.17
구조체와 포인터  (0) 2011.08.17
구조체  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17
구조체란?

사용자가 직접 자료형을 만들어서 사용하는것!

사용법                                       ex)
struct 구조체{                                            struct my_spec{
   자료형 변수 ;                                              int tall;
};                                                                 int  age;
                                                                   char name[20];
                                                                 };

위의 ex) 와같이 선언후
struct my_spec A;     → int 형 2개 char 형 한개를 묶어서 my_spec라는 자료형 A를 만듦.
A.tall = Value;



#include<stdio.h>
struct student{
   int id;
   char name[20];
   int kor,eng,math;
   char address[100];
};

void main()
{
   struct student ST= {201154321, "hong gil dong", 90,91,92,"서울 강남구 대치동"
};
   printf("ST구조체의 크기 : %d \n" sizeof(ST));
   printf("ST의 학번 : %d \n",ST.id);
   printf("ST의 이름: %s \n",ST.name);
   printf("ST의 성적(국,영,수):%d %d %d \n",ST.kor,ST.engm,ST.math);
   printft("ST의 주소:%s \n",ST.address);
}



*구조체를 정의하고 main에서 구조체 자료형(student)을 ST라는 변수로 선언.
  초기화는 구조체 타입에 정의한순서대로 (int, char,int,int,int,char)
printf문에서 ST.id  → 구조체의 접근은 .(마침표)로 접근


'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글

구조체와 포인터  (0) 2011.08.17
구조체와 배열  (0) 2011.08.17
Call by Referance  (0) 2011.08.17
Call by Address  (0) 2011.08.17
Call By Value  (0) 2011.08.17