}
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ StorePixelFormatData() ΠΈ CreateCustomSurfaces(), ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΌ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ OnCreate(). ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ΠΠ°ΠΊ ΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅, Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΊΠ»Π°ΡΡ DirectDrawWin Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ DrawScene(). ΠΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΎΠΊΠΎΠ½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΎΠΊΠ½Π°. ΠΠΎΠΌΠ½ΠΈΡΠ΅ β ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π°. ΠΠΊΠΎΠ½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ DrawScene() Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
void BounceWin::DrawScene() {
ClearSurface(backsurf, 0);
CRect client=GetClientRect();
int width=client.Width();
int height=client.Height();
x+=xinc;
y+=yinc;
if (x<-160 || x>width-160) {
xinc=-xinc;
x+=xinc;
}
if (y<-100 || y>height-100) {
yinc=-yinc;
y+=yinc;
}
BltSurface(backsurf, surf1, x, y);
int offsetx=client.left;
int offsety=client.top;
RECT srect;
srect.left=0;
srect.top=0;
srect.right=client.Width();
srect.bottom=client.Height();
RECT drect;
drect.left=offsetx;
drect.top=offsety;
drect.right=offsetx+client.Width();
drect.bottom=offsety+client.Height();
primsurf->Blt(&drect, backsurf, &srect, DDBLT_WAIT, 0);
}
Π€ΡΠ½ΠΊΡΠΈΡ DrawScene() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π²Π΅ Π±Π»ΠΈΡ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ surf1 Π½Π° Π²Π½Π΅ΡΠΊΡΠ°Π½Π½ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ BltSurface(), ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ Π²ΡΡΠ΅. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ BltSurface(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ surf1.
ΠΡΠΎΡΠ°Ρ Π±Π»ΠΈΡ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ. ΠΠ° ΡΡΠΎΡ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Blt(), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ. Π‘ΡΡΡΠΊΡΡΡΡ srect ΠΈ drect ΡΠΈΠΏΠ° RECT ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠ΅ Π² Π±Π»ΠΈΡΡΠΈΠ½Π³Π΅. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ offsetx ΠΈ offsety, Π² ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ ΡΡΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ drect, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΠΊΡΠ°Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΈΠ·ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ AppWizard. Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΡΡΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Bounce Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ BltSurface() Π½Π° BltFast() ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ.
Π ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠ΅ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²Π½Π΅ΡΡΠΈ Π² Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π Π³Π»Π°Π²Π΅ 4 ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ DirectDraw ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠ»Π°Π²Π° 4. ΠΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΡ ΠΈ ΡΠ°ΡΡΠΎΡΠ° ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ²
Π Π³Π»Π°Π²Π΅ 1 Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΡΠ½ΠΊΡΠΈΠΈ EnumDisplayModes() ΠΈ SetDisplayMode() ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠ» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΠ΄Π΅ΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Switch ΠΈ SuperSwitch. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Switch Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΌΠ΅Π½Ρ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ . ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° SuperSwitch Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΡΡΠΎΡΡ ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ β ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ DirectDraw, Π΄Π° ΠΈ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ² ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΡΡΠΆΠ΅Π»ΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Ρ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΠΎΡΠ°Π·ΠΈΡΡ Π²Π°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² DirectDraw ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΡΠ΅Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠ° Π³Π»Π°Π²Π° ΠΏΡΠ΅ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΡΡ ΡΠ΅Π»Ρ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Switch ΠΈ SuperSwitch ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° DirectDraw, ΠΊΠΎΡΠΎΡΡΠ΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ (ΠΈΠ»ΠΈ ΡΠΆΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡ), β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ. Π₯ΠΎΡΡ Ρ Π½Π°Ρ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅ΠΌ, ΠΌΡ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ²
ΠΠ»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ SetDisplayMode() ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw ΡΡΠΎΠΈΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ°ΠΊ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ ΠΈΠ· Π³Π»Π°Π²Ρ 3, ΠΊΠ»Π°ΡΡ DirectDrawWin Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ EnumDisplayModes() ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw ΡΡΡΠΎΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π»Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° SetDisplayMode().
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π½Π΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΡΠΎΡΡΠΎΠΌΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ SetDisplayMode(). ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π² ΠΊΠ»Π°ΡΡ DirectDrawWin Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ActivateDisplayMode(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ Π³Π»Π°Π΄ΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΡΠΊΠΎΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ActivateDisplayMode() ΠΈ Π²ΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ, Π½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ SetDisplayMode().
Π€ΡΠ½ΠΊΡΠΈΡ SetDisplayMode()Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ SetDisplayMode(). ΠΠ΅ΡΠ²Π°Ρ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ DirectDraw ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΡΡΠ΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠΎΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ DirectDraw2 ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠΎΡΠΎΡΠΈΠΏ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
HRESULT SetDisplayMode(DWORD width, DWORD height, DWORD depth);
Π‘ΠΠΠΠ’ΠΠ»Ρ Π»ΡΠ±ΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ
ΠΠ°Π³Π»ΡΠ½ΡΠ² Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» DirectDraw (ddraw.h), Π²Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² Π½Π΅ΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DirectDraw ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° IDL (ΡΠ·ΡΠΊΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²) ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ COM. ΠΠ° IDL ΡΡΠ½ΠΊΡΠΈΡ SetDisplayMode() Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD, DWORD) PURE;
ΠΠ»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ IDL Π½Π΅ Π½ΡΠΆΠ΅Π½. ΠΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, β ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΈΠΏΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ΅ ΡΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ DirectX.
Π€ΡΠ½ΠΊΡΠΈΡ SetDisplayMode(), ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ DirectX API, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° HRESULT β 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DD_OK ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ.
ΠΠ΅ΡΡΠΈΡ SetDisplayMode() ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΏΠ° DWORD. ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌ VGA 640Γ480Γ8 Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΊ:
ddraw1->SetDisplayMode(640, 480, 8);
ΠΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π²Π΅ΡΡΠΈΠΈ SetDisplayMode() ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw2. ΠΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
HRESULT SetDisplayMode(DWORD width, DWORD height, DWORD depth, DWORD refreshrate, DWORD flags);
Π ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΡΠ°ΡΡΠΎΡΠ° ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ² ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ DirectDraw, Π° ΠΏΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π²Π½ΠΎ Π½ΡΠ»Ρ. Π ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ SetDisplayMode() ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌ VGA 640Γ480Γ8 ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ:
ddraw1->SetDisplayMode(640, 480, 8, 0, 0);
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΡΠΎΡΡ ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ 0; ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠ°ΡΡΠΎΡΠ°, ΠΏΡΠΈΠ½ΡΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ (60 ΠΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅):
ddraw1->SetDisplayMode(640, 480, 8, 60, 0);
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΡΡ ΡΠ°ΡΡΠΎΡΡ (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°). ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠ·ΡΠ²Π°ΡΡ SetDisplayMode(), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈ ΡΠ°ΡΡΠΎΡ ΡΠΌΠ΅Π½Ρ ΠΊΠ°Π΄ΡΠΎΠ²
Π Π³Π»Π°Π²Π΅ 3 Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ EnumDisplayModes() ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DirectDraw ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΡ. Π§Π΅ΡΠ΅Π· ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ½Π° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΡΠΎΡΠΎΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ EnumDisplayModes() Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: