|
1 registered members (Grant),
3,476
guests, and 3
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Code to find the resolution available of a graphic card
#363004
03/10/11 17:16
03/10/11 17:16
|
Joined: May 2008
Posts: 257
djfeeler
OP
Member
|
OP
Member
Joined: May 2008
Posts: 257
|
Hello, for people who do not know how to determine all graphic card resolution, I made a code: Good programming 
// code to find the resolution of a graphic card by djfeeler
#include <acknex.h> // Pure-Mode
#include <default.c> // Standard-Keys
#include <windows.h> // Windows-API-Calls
typedef struct _devicemode {
char dmDeviceName[32];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[32];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} SCRMODE;
PANEL* pan_results =
{
pos_x = 0;
pos_y = 0;
layer = 1;
flags = SHOW;
digits(0, 100, 4, *, 1, screen_size.x);
digits(0, 120, 4, *, 1, screen_size.y);
}
SCRMODE resolution;
//Table of resolution available
var Tab_x[29]={0};
var Tab_y[29]={0};
function getscreenres()
{
//create file with all resolution available
//set all value at zero
var i = 0;
for (i=0; i<=29; i++)
{
Tab_x[i] = 0;
Tab_y[i] = 0;
}
var n = 0;
var e = 0;
while(EnumDisplaySettings(NULL,n , &resolution)!=0)
{
var p =0;
var VL_exist = 0;
for (p=0; p<=29; p++)
{
if((Tab_x[p]==resolution.dmPelsWidth)&&(Tab_y[p]==resolution.dmPelsHeight))
{
VL_exist = 1;
}
}
if(VL_exist==0)
{
Tab_x[e] = resolution.dmPelsWidth;
Tab_y[e] = resolution.dmPelsHeight;
e = e+1;
}
n = n + 1;
}
var m=0;
for (m=0; m<=29; m++)
{
if(Tab_x[m]>Tab_x[m+1])
{
Tab_x[m]=0;
Tab_y[m]=0;
}
}
var VL_file_write_resolution = file_open_write("resolution.txt");
if(VL_file_write_resolution!=0)
{
var l=0;
while(Tab_x[l]!=0)
{
file_var_write(VL_file_write_resolution,Tab_x[l]);file_str_write(VL_file_write_resolution," ");file_var_write(VL_file_write_resolution,Tab_y[l]);file_str_write(VL_file_write_resolution,"\r\n");
l=l+1;
wait(1);
}
file_open_write(VL_file_write_resolution);
}
}
void main()
{
video_set(1024,576,0,2);
level_load(NULL);
wait(1);
getscreenres();
}
Its code is free for all project ^^ djfeeler
Last edited by djfeeler; 03/10/11 17:56.
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: djfeeler]
#363009
03/10/11 17:40
03/10/11 17:40
|
Joined: Aug 2009
Posts: 1,438 Spain
painkiller
Serious User
|
Serious User
Joined: Aug 2009
Posts: 1,438
Spain
|
doesn't sys_metrics(0) and sys_metrics(1) already do that?
3D Gamestudio A8 Pro AMD FX 8350 4.00 Ghz 16GB RAM Gigabyte GeForce GTX 960 4GB
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: painkiller]
#363011
03/10/11 17:48
03/10/11 17:48
|
Joined: May 2008
Posts: 257
djfeeler
OP
Member
|
OP
Member
Joined: May 2008
Posts: 257
|
It is to find all the resolutions and place them in the table Tab_x, Tab_y and you can select the available resolutions in a menu if you program it.
Last edited by djfeeler; 03/10/11 17:53.
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: djfeeler]
#363019
03/10/11 17:56
03/10/11 17:56
|
Joined: Sep 2009
Posts: 496
Progger
Senior Member
|
Senior Member
Joined: Sep 2009
Posts: 496
|
hm i got that:
640 480
720 480
720 576
800 600
1024 768
1152 864
1176 664
1280 720
1280 768
1280 800
1280 960
1280 1024
1360 768
1440 900
1600 900
1600 1024
1600 1200
1680 1050
1768 992
Isnt my graphic card for 1920*1080? WFG Progger
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: Progger]
#363021
03/10/11 18:00
03/10/11 18:00
|
Joined: May 2008
Posts: 257
djfeeler
OP
Member
|
OP
Member
Joined: May 2008
Posts: 257
|
try this code :
// code to find the resolution of a graphic card by djfeeler
#include <acknex.h> // Pure-Mode
#include <default.c> // Standard-Keys
#include <windows.h> // Windows-API-Calls
typedef struct _devicemode {
char dmDeviceName[32];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[32];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
DWORD dmDisplayFlags;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} SCRMODE;
PANEL* pan_results =
{
pos_x = 0;
pos_y = 0;
layer = 1;
flags = SHOW;
digits(0, 100, 4, *, 1, screen_size.x);
digits(0, 120, 4, *, 1, screen_size.y);
}
SCRMODE resolution;
//Table of resolution available
var Tab_x[29]={0};
var Tab_y[29]={0};
function getscreenres()
{
//create file with all resolution available
//set all value at zero
var i = 0;
for (i=0; i<=29; i++)
{
Tab_x[i] = 0;
Tab_y[i] = 0;
}
var n = 0;
var e = 0;
while(EnumDisplaySettings(NULL,n , &resolution)!=0)
{
var p =0;
var VL_exist = 0;
for (p=0; p<=29; p++)
{
if((Tab_x[p]==resolution.dmPelsWidth)&&(Tab_y[p]==resolution.dmPelsHeight))
{
VL_exist = 1;
}
}
if(VL_exist==0)
{
Tab_x[e] = resolution.dmPelsWidth;
Tab_y[e] = resolution.dmPelsHeight;
e = e+1;
}
n = n + 1;
}
/*var m=0;
for (m=0; m<=29; m++)
{
if(Tab_x[m]>Tab_x[m+1])
{
Tab_x[m]=0;
Tab_y[m]=0;
}
}*/
var VL_file_write_resolution = file_open_write("resolution.txt");
if(VL_file_write_resolution!=0)
{
var l=0;
while(Tab_x[l]!=0)
{
file_var_write(VL_file_write_resolution,Tab_x[l]);file_str_write(VL_file_write_resolution," ");file_var_write(VL_file_write_resolution,Tab_y[l]);file_str_write(VL_file_write_resolution,"\r\n");
l=l+1;
wait(1);
}
file_open_write(VL_file_write_resolution);
}
}
void main()
{
video_set(1024,576,0,2);
level_load(NULL);
wait(1);
getscreenres();
}
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: djfeeler]
#363023
03/10/11 18:03
03/10/11 18:03
|
Joined: Sep 2009
Posts: 496
Progger
Senior Member
|
Senior Member
Joined: Sep 2009
Posts: 496
|
now it shows all 
640 480
720 480
720 576
800 600
1024 768
1152 864
1176 664
1280 720
1280 768
1280 800
1280 960
1280 1024
1360 768
1440 900
1600 900
1600 1024
1600 1200
1680 1050
1768 992
1920 1080
and yes i have A Full-Hd display
Last edited by Progger; 03/10/11 18:05.
|
|
|
Re: Code to find the resolution available of a graphic card
[Re: djfeeler]
#363025
03/10/11 18:06
03/10/11 18:06
|
Joined: May 2008
Posts: 257
djfeeler
OP
Member
|
OP
Member
Joined: May 2008
Posts: 257
|
|
|
|
|