Gamestudio Links
Zorro Links
Newest Posts
Z9 getting Error 058
by k_ivan. 04/20/26 15:57
Stooq now requires an API key
by jcl. 04/13/26 09:42
Strange "Alien" Skull created with >Knubber<
by NeoDumont. 04/10/26 18:58
400 free seamless texture pack downl. here !
by NeoDumont. 04/08/26 19:55
ZorroGPT
by TipmyPip. 04/08/26 17:08
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
1 registered members (Grant), 3,476 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
juergenwue, VladMak, Geir, ondrej, mredit
19208 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
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
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

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 grin

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();	
}



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 Offline
Serious User
painkiller  Offline
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
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

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
P
Progger Offline
Senior Member
Progger  Offline
Senior Member
P

Joined: Sep 2009
Posts: 496
hm i got that:
Code:
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


asking is the best Way to get help laugh laugh laugh
Re: Code to find the resolution available of a graphic card [Re: Progger] #363020
03/10/11 17:59
03/10/11 17:59
Joined: Nov 2002
Posts: 913
Berlin, Germany
S
SchokoKeks Offline
User
SchokoKeks  Offline
User
S

Joined: Nov 2002
Posts: 913
Berlin, Germany
@Progger: I think this only gives the modes that are supported by your display AND your card. So do you have a Full HD display?

@djfeeler: Thanks a lot, this is very useful!

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
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

Joined: May 2008
Posts: 257
try this code :

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] #363022
03/10/11 18:02
03/10/11 18:02
Joined: May 2008
Posts: 257
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

Joined: May 2008
Posts: 257
your resolution 1920*1080? is displayed ?

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
P
Progger Offline
Senior Member
Progger  Offline
Senior Member
P

Joined: Sep 2009
Posts: 496
now it shows all laugh
Code:
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.

asking is the best Way to get help laugh laugh laugh
Re: Code to find the resolution available of a graphic card [Re: djfeeler] #363024
03/10/11 18:04
03/10/11 18:04
Joined: May 2008
Posts: 257
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

Joined: May 2008
Posts: 257
Yes, this code give the mode supported by the engine.

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
D
djfeeler Offline OP
Member
djfeeler  Offline OP
Member
D

Joined: May 2008
Posts: 257
It's good then ^^

Page 1 of 2 1 2

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1