<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=2dInDirect3d%2FChapter1</id>
	<title>2dInDirect3d/Chapter1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=2dInDirect3d%2FChapter1"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter1&amp;action=history"/>
	<updated>2026-05-14T11:45:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter1&amp;diff=83913&amp;oldid=prev</id>
		<title>Maintenance script: Repair pages found by live-compare batch 0001</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter1&amp;diff=83913&amp;oldid=prev"/>
		<updated>2026-03-26T14:46:17Z</updated>

		<summary type="html">&lt;p&gt;Repair pages found by live-compare batch 0001&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:46, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    UINT SDKVersion;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    UINT SDKVersion;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;IN&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# IN 유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  IDirect3D8* pd3d = NULL; // 포인터를 한개 만들어서&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  IDirect3D8* pd3d = NULL; // 포인터를 한개 만들어서&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  설마 그래픽카드(Adapter)를 여러개 다는 집은 흔하지 않을 거라 생각하지만, 만일의 사태를 대비해서 모두 만들어 두었다&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  설마 그래픽카드(Adapter)를 여러개 다는 집은 흔하지 않을 거라 생각하지만, 만일의 사태를 대비해서 모두 만들어 두었다&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  UINT IDirect3D8::GetAdapterCount();&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  UINT IDirect3D8::GetAdapterCount();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;RET&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;몇개의 어댑터가 있는지 알려준다. 1개가 있으면 1, 2개가 있으면 2다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# RET 몇개의 어댑터가 있는지 알려준다. 1개가 있으면 1, 2개가 있으면 2다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  어댑터에는 모두 번호가 붙어있다. 첫번째 어댑터에는 0, 두번째 어댑터에는 1, 이런 식이다. 0은 기본으로 있기 때문에 매크로로도 만들어져 있다. &amp;#039;&amp;#039;&amp;#039;D3DADAPTER_DEFAULT&amp;#039;&amp;#039;&amp;#039; 매크로이다. 0번 어댑터를 기본 어댑터라고도 한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  어댑터에는 모두 번호가 붙어있다. 첫번째 어댑터에는 0, 두번째 어댑터에는 1, 이런 식이다. 0은 기본으로 있기 때문에 매크로로도 만들어져 있다. &amp;#039;&amp;#039;&amp;#039;D3DADAPTER_DEFAULT&amp;#039;&amp;#039;&amp;#039; 매크로이다. 0번 어댑터를 기본 어댑터라고도 한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot;&gt;Line 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    D3DADAPTER_IDENTIFIER8* pIdentifier&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    D3DADAPTER_IDENTIFIER8* pIdentifier&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  };&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;RET&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# RET HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;IN&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt; 첫번째 인자는, 어댑터의 번호이다. 당연히 D3DADAPTER_DEFAULT를 넣어준다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# IN  첫번째 인자는, 어댑터의 번호이다. 당연히 D3DADAPTER_DEFAULT를 넣어준다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;IN&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt; 두번째 인자는 플래그이다. 0이나 D3D_ENUM_NO_WHQL_LEVEL을 넣을 수 있지만, 대개 0을 넣는다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# IN  두번째 인자는 플래그이다. 0이나 D3D_ENUM_NO_WHQL_LEVEL을 넣을 수 있지만, 대개 0을 넣는다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;OUT&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;세번째 인자를 출력값이다. 그곳의 멤버 변수는 다음과 같다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# OUT 세번째 인자를 출력값이다. 그곳의 멤버 변수는 다음과 같다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      Driver : 드라이버의 이름&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      Driver : 드라이버의 이름&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      Description : 어댑터의 설명&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      Description : 어댑터의 설명&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l105&quot;&gt;Line 105:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 105:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[2dInDirect3d]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[2dInDirect3d]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter1&amp;diff=26750&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter1&amp;diff=26750&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
= Initializing Direct3D =&lt;br /&gt;
 == Initialization Step ==&lt;br /&gt;
# IDirect3D8 객체를 만든다.&lt;br /&gt;
# 호환성 있는 IDirect3D8 객체를 검사한 후, 적정한 디바이스 타입을 고른다.&lt;br /&gt;
# 디스플레이 모드와 어댑터를 선택한다.&lt;br /&gt;
# IDirect3DDevice8 객체를 만들고 초기화한다.&lt;br /&gt;
# 텍스쳐를 사용해 게임 이미지를 불러들인다.&lt;br /&gt;
 &lt;br /&gt;
 이렇게 써놓고 보면 상당히 간단한 작업이다. -_-;;&lt;br /&gt;
 == Purpose of the IDirect3D8 Object ==&lt;br /&gt;
 이것을 만드는 이유는 간단하다. IDirect3DDevice8 객체를 만들기 위해서는 &amp;quot;꼭&amp;quot; 필요하기 때문에 만든다. 이 객체에서는 실질적인 작업보다는 초기화를 도와주는 역할을 주로 한다.&lt;br /&gt;
&lt;br /&gt;
 == Creating IDirect3D8 Object ==&lt;br /&gt;
 그럼 실제로 만들어보자. 만들때에는 다음 함수가 필요하다.&lt;br /&gt;
 IDirect3D8* Direct3DCreate8 (&lt;br /&gt;
   UINT SDKVersion;&lt;br /&gt;
 );&lt;br /&gt;
# [[IN]] 유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.&lt;br /&gt;
&lt;br /&gt;
 IDirect3D8* pd3d = NULL; // 포인터를 한개 만들어서&lt;br /&gt;
 pd3d = Direct3DCreate8( D3D_SDK_VERSION ); // 이렇게 생성한다.&lt;br /&gt;
 ///// 해제할때는 이렇게&lt;br /&gt;
 if( pd3d )&lt;br /&gt;
 {&lt;br /&gt;
   pd3d-&amp;amp;gt;Release();&lt;br /&gt;
   pd3d = NULL;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 == Examining Capabilities ==&lt;br /&gt;
 요새는 컴퓨터마다 모두 다른 사양을 갖고 있다. 과연 그 컴퓨터가 어떤것을 지원하는지 호환성을 꼭 체크해야한다.&lt;br /&gt;
  === Adapter ===&lt;br /&gt;
 설마 그래픽카드(Adapter)를 여러개 다는 집은 흔하지 않을 거라 생각하지만, 만일의 사태를 대비해서 모두 만들어 두었다&lt;br /&gt;
 UINT IDirect3D8::GetAdapterCount();&lt;br /&gt;
# [[RET]] 몇개의 어댑터가 있는지 알려준다. 1개가 있으면 1, 2개가 있으면 2다.&lt;br /&gt;
&lt;br /&gt;
 어댑터에는 모두 번호가 붙어있다. 첫번째 어댑터에는 0, 두번째 어댑터에는 1, 이런 식이다. 0은 기본으로 있기 때문에 매크로로도 만들어져 있다. &amp;#039;&amp;#039;&amp;#039;D3DADAPTER_DEFAULT&amp;#039;&amp;#039;&amp;#039; 매크로이다. 0번 어댑터를 기본 어댑터라고도 한다.&lt;br /&gt;
&lt;br /&gt;
 그 어댑터는 어떤 상태일까&lt;br /&gt;
 HRESULT GetAdapterIdentifier {&lt;br /&gt;
   UINT Adapter,&lt;br /&gt;
   DWORD Flags,&lt;br /&gt;
   D3DADAPTER_IDENTIFIER8* pIdentifier&lt;br /&gt;
 };&lt;br /&gt;
# [[RET]] HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.&lt;br /&gt;
# [[IN]]  첫번째 인자는, 어댑터의 번호이다. 당연히 D3DADAPTER_DEFAULT를 넣어준다.&lt;br /&gt;
# [[IN]]  두번째 인자는 플래그이다. 0이나 D3D_ENUM_NO_WHQL_LEVEL을 넣을 수 있지만, 대개 0을 넣는다.&lt;br /&gt;
# [[OUT]] 세번째 인자를 출력값이다. 그곳의 멤버 변수는 다음과 같다.&lt;br /&gt;
     Driver : 드라이버의 이름&lt;br /&gt;
     Description : 어댑터의 설명&lt;br /&gt;
     DriverVersion : 드라이버의 버전&lt;br /&gt;
     VendorID, DeviceID, SubSysID, Revision : 칩셋마다 틀려요&lt;br /&gt;
     DeviceIdentifier : 드라이버나 어댑터를 위한 GUID(?)&lt;br /&gt;
     WHQLLevel : 인증날짜&lt;br /&gt;
&lt;br /&gt;
  === Device Type ===&lt;br /&gt;
 디바이스의 타입을 얻어온다.&lt;br /&gt;
 HRESULT GetDeviceCaps(&lt;br /&gt;
   UINT Adapter,&lt;br /&gt;
   D3DDEVTYPE DeviceType,&lt;br /&gt;
   D3DCAPS8* pCaps&lt;br /&gt;
 );&lt;br /&gt;
 만들 수 있는 디바이스의 타입은 세 가지가 있다. (2번째 인자의 값으로 사용한다.)&lt;br /&gt;
# D3DDEVTYPE_HAL : 하드웨어에서 지원하는 기능을 사용한다.&lt;br /&gt;
# D3DDEVTYPE_REF : HAL 보다 느리지만 소프트웨어적으로 지원&lt;br /&gt;
# D3DDEVTYPE_SW : 하드웨어 가속을 전혀 사용하지 않고 소프트웨어적으로 에뮬레이션&lt;br /&gt;
&lt;br /&gt;
 == Display Format ==&lt;br /&gt;
 디스플레이의 포맷을 저장하는 데이터형이 D3DFORMAT라는 형태이다. A,R,G,B 네가지의 값을 몇비트씩 갖는지를 상세하게 정할 수 있다.&lt;br /&gt;
자세한 것은 MSDN을,&lt;br /&gt;
# 32비트 포맷으로는 D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8 등이 있다.&lt;br /&gt;
# 24비트 포맷으로는 D3DFMT_R8G8B8 이 있다.&lt;br /&gt;
# 16비트 포맷으로는 D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_A1R5G5B5, D3DFMT_A4R4G4B4 등이 있다.&lt;br /&gt;
&lt;br /&gt;
 == Enumeration Display Mode ==&lt;br /&gt;
  === Looking at Adapter Display Modes ===&lt;br /&gt;
 실행자의 어댑터가 어떤 모드를 표시할 수 있는지 알아보자. 먼저 몇가지 모드를 표시할 수 있는지 알아보자&lt;br /&gt;
 UINT IDirect3D8::GetAdapterModeCount(&lt;br /&gt;
   UINT Adapter;&lt;br /&gt;
 );&lt;br /&gt;
# Adapter에는 어댑터의 번호(D3DADAPTER_DEFAULT)를 넣는다. 리턴값은 표시할 수 있는 모드의 개수&lt;br /&gt;
&lt;br /&gt;
 어떤 모드가 어떻게 표시하는지를 알아보려면&lt;br /&gt;
 HRESULT IDirect3D8::EnumAdapterModes(&lt;br /&gt;
   UINT Adapter,&lt;br /&gt;
   UINT Mode,&lt;br /&gt;
   D3DDISPLAYMODE* pMode&lt;br /&gt;
 );&lt;br /&gt;
# Adapter에는 어댑터의 번호를, Mode에는 표시할 모드의 번호(0 ~ GetAdapterModeCount() - 1의 범위)를 넣는다.&lt;br /&gt;
# pMode에 그 모드의 정보가 나온다.&lt;br /&gt;
   Width : 가로폭&lt;br /&gt;
   Height : 세로폭&lt;br /&gt;
   RefreshRate : 주사율&lt;br /&gt;
   Format : 포맷(앞쪽에 나왔던)&lt;br /&gt;
  === Getting the Current Display Mode ===&lt;br /&gt;
 현재 어떤 모드인지 얻어올 수 있다.&lt;br /&gt;
 HRESULT GetAdapterDisplayMode(&lt;br /&gt;
   UINT Adapter,&lt;br /&gt;
   D3DDISPLAYMODE* pMode&lt;br /&gt;
 );&lt;br /&gt;
 인자는 위의것과 같다.&lt;br /&gt;
 = Checking For Compatible Formats =&lt;br /&gt;
  == Checking Resource Formats ==&lt;br /&gt;
  == Checking Support ==&lt;br /&gt;
----&lt;br /&gt;
[[2dInDirect3d]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>