atari:gem: NOVA does not provide screen format, hardcode it SDL-1.2
authorPatrice Mandin <patmandin@gmail.com>
Mon, 06 Nov 2017 20:32:27 +0100
branchSDL-1.2
changeset 11692bff3a6018318
parent 11691 ec421fd512ba
child 11695 193b23fb2bd7
atari:gem: NOVA does not provide screen format, hardcode it
src/video/gem/SDL_gemvideo.c
     1.1 --- a/src/video/gem/SDL_gemvideo.c	Mon Nov 06 20:21:18 2017 +0100
     1.2 +++ b/src/video/gem/SDL_gemvideo.c	Mon Nov 06 20:32:27 2017 +0100
     1.3 @@ -213,6 +213,41 @@
     1.4  	GEM_Available, GEM_CreateDevice
     1.5  };
     1.6  
     1.7 +static void VDI_ReadNOVAInfo(_THIS, short *work_out)
     1.8 +{
     1.9 +	long cookie_nova;
    1.10 +
    1.11 +	/* Read NOVA informations */
    1.12 +	if  (Getcookie(C_NOVA, &cookie_nova) != C_FOUND) {
    1.13 +		return;
    1.14 +	}
    1.15 +
    1.16 +	switch(VDI_bpp) {
    1.17 +		case 15:
    1.18 +			VDI_redmask = 31<<2;
    1.19 +			VDI_greenmask = 3;
    1.20 +			VDI_bluemask = 31<<8;
    1.21 +			VDI_alphamask = 1<<7;
    1.22 +			break;
    1.23 +		case 16:
    1.24 +			VDI_redmask = 31<<3;
    1.25 +			VDI_greenmask = 7;
    1.26 +			VDI_bluemask = 31<<8;
    1.27 +			break;
    1.28 +		case 24:
    1.29 +			VDI_redmask = 255;
    1.30 +			VDI_greenmask = 255<<8;
    1.31 +			VDI_bluemask = 255<<16;
    1.32 +			break;
    1.33 +		case 32:
    1.34 +			VDI_redmask = 255<<24;
    1.35 +			VDI_greenmask = 255<<16;
    1.36 +			VDI_bluemask = 255<<8;
    1.37 +			VDI_alphamask = 255;
    1.38 +			break;
    1.39 +	}
    1.40 +}
    1.41 +
    1.42  static void VDI_ReadExtInfo(_THIS, short *work_out)
    1.43  {
    1.44  	unsigned long EdDI_version;
    1.45 @@ -421,6 +456,7 @@
    1.46  	VDI_pitch = VDI_w * VDI_pixelsize;
    1.47  	VDI_format = ( (VDI_bpp <= 8) ? VDI_FORMAT_INTER : VDI_FORMAT_PACK);
    1.48  	VDI_redmask = VDI_greenmask = VDI_bluemask = VDI_alphamask = 0;
    1.49 +	VDI_ReadNOVAInfo(this, work_out);
    1.50  	VDI_ReadExtInfo(this, work_out);
    1.51  
    1.52  #ifdef DEBUG_VIDEO_GEM