Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing declaration in drv_gfx_ssd1963.c #20

Open
Cargr opened this issue Dec 9, 2021 · 1 comment
Open

Missing declaration in drv_gfx_ssd1963.c #20

Cargr opened this issue Dec 9, 2021 · 1 comment

Comments

@Cargr
Copy link

Cargr commented Dec 9, 2021

Hi,
i was expierence a issues with gfx v3.9.5 and earlier.
Generated code with LE SSD1963 and LE Parallel (EBI) did not compile because missing declarations in function

gfxDriverIOCTLResponse DRV_SSD1963_IOCTL(gfxDriverIOCTLRequest req, void* arg)

in

drv_gfx_ssd1963.c

Generated Code:

gfxDriverIOCTLResponse DRV_SSD1963_IOCTL(gfxDriverIOCTLRequest req, void* arg)
{
	switch(**request**)
	{
		case GFX_IOCTL_GET_COLOR_MODE:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = PIXEL_BUFFER_COLOR_MODE;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_BUFFER_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 1;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_DISPLAY_SIZE:
		{
			disp = (gfxIOCTLArg_DisplaySize*)arg;			
			
			disp->width = SCREEN_WIDTH;
			disp->height = SCREEN_HEIGHT;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_LAYER_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 1;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_ACTIVE_LAYER:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 0;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_LAYER_RECT:
		{
			rect = (gfxIOCTLArg_LayerRect*)arg;
			
			rect->x = 0;
			rect->y = 0;
			rect->width = SCREEN_WIDTH;
			rect->height = SCREEN_HEIGHT;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_VSYNC_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = swapCount;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_LAYER_SWAP:
		{
			swapCount += 1;
			
			return GFX_IOCTL_OK;
		}
		default:
		{
		}
	}
	
	return GFX_IOCTL_UNSUPPORTED;
}

Fixed Code:

gfxDriverIOCTLResponse DRV_SSD1963_IOCTL(gfxDriverIOCTLRequest req, void* arg)
{
    
    gfxIOCTLArg_Value* val;
    gfxIOCTLArg_DisplaySize* disp;
    gfxIOCTLArg_LayerRect* rect;
    
	switch(req)
	{
		case GFX_IOCTL_GET_COLOR_MODE:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = PIXEL_BUFFER_COLOR_MODE;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_BUFFER_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 1;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_DISPLAY_SIZE:
		{
			disp = (gfxIOCTLArg_DisplaySize*)arg;			
			
			disp->width = SCREEN_WIDTH;
			disp->height = SCREEN_HEIGHT;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_LAYER_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 1;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_ACTIVE_LAYER:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = 0;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_LAYER_RECT:
		{
			rect = (gfxIOCTLArg_LayerRect*)arg;
			
			rect->x = 0;
			rect->y = 0;
			rect->width = SCREEN_WIDTH;
			rect->height = SCREEN_HEIGHT;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_GET_VSYNC_COUNT:
		{
			val = (gfxIOCTLArg_Value*)arg;
			
			val->value.v_uint = swapCount;
			
			return GFX_IOCTL_OK;
		}
		case GFX_IOCTL_LAYER_SWAP:
		{
			swapCount += 1;
			
			return GFX_IOCTL_OK;
		}
		default:
		{
		}
	}
	
	return GFX_IOCTL_UNSUPPORTED;
}

Bye

@MHGC
Copy link
Contributor

MHGC commented Dec 9, 2021

We will make this fix in the next release. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants