changes for base type

This commit is contained in:
houzh 2024-10-24 16:12:00 +08:00
parent 1ce98dafc4
commit bea3f746a4
6 changed files with 42 additions and 40 deletions

View File

@ -112,7 +112,7 @@ int32_t GFXFlip(GFXHANDLE surface) {
return ret; return ret;
} }
int32_t GFXCreateSurface(int32_t dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,BOOL hwsurface) { int32_t GFXCreateSurface(int32_t dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,bool hwsurface) {
int i,ret; int i,ret;
DFBSurfaceDescription desc; DFBSurfaceDescription desc;
IDirectFBSurface*dfbsurface; IDirectFBSurface*dfbsurface;

View File

@ -81,29 +81,29 @@ int32_t GFXGetDisplayCount(){
return 1; return 1;
} }
int32_t GFXLockSurface(HANDLE surface,void**buffer,uint32_t*pitch) { int32_t GFXLockSurface(GFXHANDLE surface,void**buffer,uint32_t*pitch) {
SURFACE*gfx=(SURFACE*)surface; SURFACE*gfx=(SURFACE*)surface;
*buffer=gfx->vaddr; *buffer=gfx->vaddr;
*pitch=gfx->pitch; *pitch=gfx->pitch;
return 0; return 0;
} }
int32_t GFXGetSurfaceInfo(HANDLE surface,uint32_t*width,uint32_t*height,int32_t *format) { int32_t GFXGetSurfaceInfo(GFXHANDLE surface,uint32_t*width,uint32_t*height,int32_t *format) {
SURFACE*gfx=(SURFACE*)surface; SURFACE*gfx=(SURFACE*)surface;
*width=gfx->width; *width=gfx->width;
*height=gfx->height; *height=gfx->height;
return 0; return 0;
} }
int32_t GFXUnlockSurface(HANDLE surface) { int32_t GFXUnlockSurface(GFXHANDLE surface) {
return 0; return 0;
} }
int32_t GFXSurfaceSetOpacity(HANDLE surface,uint8_t alpha) { int32_t GFXSurfaceSetOpacity(GFXHANDLE surface,uint8_t alpha) {
return 0; return 0;
} }
int32_t GFXFillRect(HANDLE surface,const GFXRect*rect,uint32_t color) { int32_t GFXFillRect(GFXHANDLE surface,const GFXRect*rect,uint32_t color) {
SURFACE*ngs=(SURFACE*)surface; SURFACE*ngs=(SURFACE*)surface;
uint32_t x,y; uint32_t x,y;
GFXRect rec= {0,0,0,0}; GFXRect rec= {0,0,0,0};
@ -135,7 +135,7 @@ static void modeset_flip_handler(int fd, uint32_t frame,
LOGD_IF(i%200==0,"crtcid=%d time %d.%d flip=%d",crtc_id,sec,usec,ret); LOGD_IF(i%200==0,"crtcid=%d time %d.%d flip=%d",crtc_id,sec,usec,ret);
} }
int32_t GFXFlip(HANDLE surface) { int32_t GFXFlip(GFXHANDLE surface) {
SURFACE*gfx=(SURFACE*)surface; SURFACE*gfx=(SURFACE*)surface;
/*drmEventContext ev = {}; /*drmEventContext ev = {};
ev.version = DRM_EVENT_CONTEXT_VERSION; ev.version = DRM_EVENT_CONTEXT_VERSION;
@ -149,7 +149,7 @@ int32_t GFXFlip(HANDLE surface) {
return 0; return 0;
} }
int32_t GFXCreateSurface(int,HANDLE*surface,uint32_t width,uint32_t height,int32_t format,BOOL hwsurface) { int32_t GFXCreateSurface(int,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,bool hwsurface) {
SURFACE*gfx=(SURFACE*)malloc(sizeof(SURFACE)); SURFACE*gfx=(SURFACE*)malloc(sizeof(SURFACE));
gfx->width = width; gfx->width = width;
gfx->height= height; gfx->height= height;
@ -165,7 +165,7 @@ int32_t GFXCreateSurface(int,HANDLE*surface,uint32_t width,uint32_t height,int32
return 0; return 0;
} }
int32_t GFXBlit(HANDLE dstsurface,int dx,int dy,HANDLE srcsurface,const GFXRect*srcrect) { int32_t GFXBlit(GFXHANDLE dstsurface,int dx,int dy,GFXHANDLE srcsurface,const GFXRect*srcrect) {
SURFACE*ndst=(SURFACE*)dstsurface; SURFACE*ndst=(SURFACE*)dstsurface;
SURFACE*nsrc=(SURFACE*)srcsurface; SURFACE*nsrc=(SURFACE*)srcsurface;
GFXRect rs= {0,0}; GFXRect rs= {0,0};
@ -206,7 +206,7 @@ int32_t GFXBlit(HANDLE dstsurface,int dx,int dy,HANDLE srcsurface,const GFXRect*
return 0; return 0;
} }
int32_t GFXDestroySurface(HANDLE surface) { int32_t GFXDestroySurface(GFXHANDLE surface) {
SURFACE*gfx=(SURFACE*)surface; SURFACE*gfx=(SURFACE*)surface;
modeset_destroy_fb(drmFD,gfx); modeset_destroy_fb(drmFD,gfx);
free(gfx); free(gfx);

View File

@ -210,7 +210,7 @@ static FBSURFACE*getFreeSurface(){
return NULL; return NULL;
} }
int32_t GFXCreateSurface(int dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,BOOL hwsurface) { int32_t GFXCreateSurface(int dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,bool hwsurface) {
FBSURFACE*surf=getFreeSurface(); FBSURFACE*surf=getFreeSurface();
FBDEVICE*dev = &devs[dispid]; FBDEVICE*dev = &devs[dispid];
surf->dispid=dispid; surf->dispid=dispid;

View File

@ -231,7 +231,7 @@ int32_t GFXFlip(GFXHANDLE surface) {
return 0; return 0;
} }
int32_t GFXCreateSurface(int dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,BOOL hwsurface) { int32_t GFXCreateSurface(int dispid,GFXHANDLE*surface,uint32_t width,uint32_t height,int32_t format,bool hwsurface) {
XImage*img=NULL; XImage*img=NULL;
if(x11Display) { if(x11Display) {
int imagedepth = DefaultDepth(x11Display,DefaultScreen(x11Display)); int imagedepth = DefaultDepth(x11Display,DefaultScreen(x11Display));

View File

@ -1,5 +1,6 @@
#ifndef __CDROID_GRAPH_H__ #ifndef __CDROID_GRAPH_H__
#define __CDROID_GRAPH_H__ #define __CDROID_GRAPH_H__
#include <stdbool.h>
#include <stdint.h> #include <stdint.h>
/** /**
@ingroup std_drivers @ingroup std_drivers
@ -84,7 +85,7 @@ int32_t GFXGetDisplaySize(int dispid, uint32_t* width, uint32_t* height);
For more information refer to @ref nglCreateSurface and @ref nglGetSurfaceInfo. For more information refer to @ref nglCreateSurface and @ref nglGetSurfaceInfo.
*/ */
int32_t GFXCreateSurface(int dispid, GFXHANDLE* surface, uint32_t width, uint32_t height, int32_t format, BOOL hwsurface); int32_t GFXCreateSurface(int dispid, GFXHANDLE* surface, uint32_t width, uint32_t height, int32_t format, bool hwsurface);
/**This function create an OSD Surface which we can used to draw sth. /**This function create an OSD Surface which we can used to draw sth.
@param [in]surface The surface handle which is created by @ref nglCreateSurface. @param [in]surface The surface handle which is created by @ref nglCreateSurface.

View File

@ -5,6 +5,7 @@
#endif #endif
#include<porting/cdgraph.h> #include<porting/cdgraph.h>
#include<porting/cdlog.h> #include<porting/cdlog.h>
#include<porting/cderrors.h>
#include <gtest/gtest.h> #include <gtest/gtest.h>
#if defined(_WIN32)||defined(_WIN64) #if defined(_WIN32)||defined(_WIN64)
void usleep(unsigned int microseconds) { void usleep(unsigned int microseconds) {
@ -84,7 +85,7 @@ public :
gettimeofday(&tv,NULL); gettimeofday(&tv,NULL);
return tv.tv_sec*1000+tv.tv_usec/1000; return tv.tv_sec*1000+tv.tv_usec/1000;
} }
unsigned int getPixel(HANDLE surface,int x,int y){ unsigned int getPixel(GFXHANDLE surface,int x,int y){
//for pixel(x,y)out of surface,we return INVALID_COLOR //for pixel(x,y)out of surface,we return INVALID_COLOR
uint8_t*buffer; uint8_t*buffer;
uint32_t w,h,f,pitch; uint32_t w,h,f,pitch;
@ -101,7 +102,7 @@ public :
default:return 0xCCCCCCCC; default:return 0xCCCCCCCC;
} }
} }
BOOL errorPixel(HANDLE surface,int x,int y,uint32_t color){ bool errorPixel(GFXHANDLE surface,int x,int y,uint32_t color){
//check color of pixel(x,y) =color //check color of pixel(x,y) =color
uint32_t cc=getPixel(surface,x,y); uint32_t cc=getPixel(surface,x,y);
return ((cc!=color)&&(cc!=INVALID_COLOR))||(cc==INVALID_COLOR); return ((cc!=color)&&(cc!=INVALID_COLOR))||(cc==INVALID_COLOR);
@ -109,7 +110,7 @@ public :
void setRect(GFXRect&r,int x,int y,uint32_t w,uint32_t h){ void setRect(GFXRect&r,int x,int y,uint32_t w,uint32_t h){
r.x=x;r.y=y;r.w=w;r.h=h; r.x=x;r.y=y;r.w=w;r.h=h;
} }
int CheckColor(HANDLE surface,GFXRect*rec,uint32_t c){ int CheckColor(GFXHANDLE surface,GFXRect*rec,uint32_t c){
int rc=0; int rc=0;
uint32_t w,h,f; uint32_t w,h,f;
GFXRect r; GFXRect r;
@ -143,7 +144,7 @@ public :
if(errorPixel(surface,r.x,r.y+(int)r.h,c))rc|=0x8000; if(errorPixel(surface,r.x,r.y+(int)r.h,c))rc|=0x8000;
return rc; return rc;
} }
int FillCheckColor(HANDLE surface,GFXRect*rec,uint32_t c){ int FillCheckColor(GFXHANDLE surface,GFXRect*rec,uint32_t c){
GFXFillRect(surface,rec,c); GFXFillRect(surface,rec,c);
return CheckColor(surface,rec,c); return CheckColor(surface,rec,c);
} }
@ -157,16 +158,16 @@ TEST_F(GRAPH,Graph_GetScreen){
} }
TEST_F(GRAPH,CreateSurface_1){ TEST_F(GRAPH,CreateSurface_1){
HANDLE surface=0; GFXHANDLE surface=0;
uint32_t width,height; uint32_t width,height;
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
ASSERT_EQ(0,GFXCreateSurface(0,&surface,width,height,GPF_ARGB,1)); ASSERT_EQ(0,GFXCreateSurface(0,&surface,width,height,GPF_ARGB,1));
ASSERT_NE((HANDLE)nullptr,surface); ASSERT_NE((GFXHANDLE)nullptr,surface);
GFXRect r={100,100,400,400}; GFXRect r={100,100,400,400};
ASSERT_EQ(0,GFXFillRect(surface,&r,0xFFFF00FF)); ASSERT_EQ(0,GFXFillRect(surface,&r,0xFFFF00FF));
ASSERT_EQ(0,GFXFlip(surface)); ASSERT_EQ(0,GFXFlip(surface));
ASSERT_NE((HANDLE)nullptr,surface); ASSERT_NE((GFXHANDLE)nullptr,surface);
sleep(2); sleep(2);
ASSERT_EQ(0,GFXDestroySurface(surface)); ASSERT_EQ(0,GFXDestroySurface(surface));
} }
@ -179,13 +180,13 @@ TEST_F(GRAPH,CreateSurface_2){
ASSERT_GT(width*height,0); ASSERT_GT(width*height,0);
for(int i=0;i<sizeof(fmts)/sizeof(int);i++){ for(int i=0;i<sizeof(fmts)/sizeof(int);i++){
uint32_t w=0,h=0,fmt=0; uint32_t w=0,h=0,fmt=0;
HANDLE surface=NULL; GFXHANDLE surface=NULL;
void*buffer=NULL; void*buffer=NULL;
int32_t rc=GFXCreateSurface(0,&surface,width,height,fmts[i],0); int32_t rc=GFXCreateSurface(0,&surface,width,height,fmts[i],0);
ASSERT_TRUE((rc==E_NOT_SUPPORT)||(rc==E_OK)); ASSERT_TRUE((rc==E_NOT_SUPPORT)||(rc==E_OK));
if(rc==E_NOT_SUPPORT) if(rc==E_NOT_SUPPORT)
continue; continue;
ASSERT_NE((HANDLE)nullptr,surface); ASSERT_NE((GFXHANDLE)nullptr,surface);
ASSERT_EQ(0,GFXGetSurfaceInfo(surface,&w,&h,(int*)&fmt)); ASSERT_EQ(0,GFXGetSurfaceInfo(surface,&w,&h,(int*)&fmt));
ASSERT_GT(w*h,0); ASSERT_GT(w*h,0);
ASSERT_EQ(fmt,fmts[i]); ASSERT_EQ(fmt,fmts[i]);
@ -199,7 +200,7 @@ TEST_F(GRAPH,CreateSurface_2){
} }
TEST_F(GRAPH,Alpha){ TEST_F(GRAPH,Alpha){
HANDLE surface=0; GFXHANDLE surface=0;
uint32_t width,height,pitch; uint32_t width,height,pitch;
uint32_t *buffer; uint32_t *buffer;
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
@ -215,7 +216,7 @@ TEST_F(GRAPH,Alpha){
} }
TEST_F(GRAPH,Colors){ TEST_F(GRAPH,Colors){
HANDLE surface=0; GFXHANDLE surface=0;
uint32_t width=0,height=0; uint32_t width=0,height=0;
GFXRect r={0,0,0,0}; GFXRect r={0,0,0,0};
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
@ -235,7 +236,7 @@ TEST_F(GRAPH,Colors){
} }
TEST_F(GRAPH,Blit){ TEST_F(GRAPH,Blit){
HANDLE mainsurface=0,surface; GFXHANDLE mainsurface=0,surface;
uint32_t width=0,height=0; uint32_t width=0,height=0;
GFXRect r={0,0,0,0}; GFXRect r={0,0,0,0};
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
@ -258,9 +259,9 @@ TEST_F(GRAPH,Blit){
} }
TEST_F(GRAPH,Multilayer){ TEST_F(GRAPH,Multilayer){
HANDLE hwsurface; GFXHANDLE hwsurface;
uint32_t width,height; uint32_t width,height;
HANDLE layers[4]={NULL,NULL,NULL,NULL}; GFXHANDLE layers[4]={NULL,NULL,NULL,NULL};
struct timeval tv; struct timeval tv;
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
ASSERT_EQ(0,GFXCreateSurface(0,&hwsurface,width,height,GPF_ARGB,1)); ASSERT_EQ(0,GFXCreateSurface(0,&hwsurface,width,height,GPF_ARGB,1));
@ -296,12 +297,12 @@ TEST_F(GRAPH,Multilayer){
} }
TEST_F(GRAPH,FillRect){ TEST_F(GRAPH,FillRect){
HANDLE surface=0; GFXHANDLE surface=0;
GFXRect r; GFXRect r;
uint32_t width,height; uint32_t width,height;
ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height)); ASSERT_EQ(0,GFXGetDisplaySize(0,&width,&height));
ASSERT_EQ(0,GFXCreateSurface(0,&surface,width,height,GPF_ARGB,1)); ASSERT_EQ(0,GFXCreateSurface(0,&surface,width,height,GPF_ARGB,1));
ASSERT_NE((HANDLE)nullptr,surface); ASSERT_NE((GFXHANDLE)nullptr,surface);
ASSERT_EQ(0xFFFF,FillCheckColor(surface,NULL,0)); ASSERT_EQ(0xFFFF,FillCheckColor(surface,NULL,0));
@ -321,7 +322,7 @@ TEST_F(GRAPH,FillRect){
} }
#define TEST_TIMES 1000 #define TEST_TIMES 1000
TEST_F(GRAPH,Benchmark_Fill){ TEST_F(GRAPH,Benchmark_Fill){
HANDLE surface=0; GFXHANDLE surface=0;
uint32_t width,height,pitch; uint32_t width,height,pitch;
uint32_t *buffer; uint32_t *buffer;
struct timeval t1,t2; struct timeval t1,t2;
@ -342,8 +343,8 @@ TEST_F(GRAPH,Benchmark_Fill){
} }
TEST_F(GRAPH,Benchmark_Blit){ TEST_F(GRAPH,Benchmark_Blit){
HANDLE mainsurface=0; GFXHANDLE mainsurface=0;
HANDLE surface2; GFXHANDLE surface2;
uint32_t width,height,pitch; uint32_t width,height,pitch;
struct timeval t1,t2; struct timeval t1,t2;
@ -370,7 +371,7 @@ typedef struct {
#if 0 #if 0
TEST_F(GRAPH,Format){ TEST_F(GRAPH,Format){
//this case show four color block ,RED,GREEN,BLUE,WHITE. //this case show four color block ,RED,GREEN,BLUE,WHITE.
HANDLE surface; GFXHANDLE surface;
uint32_t width,height; uint32_t width,height;
GFXGetDisplaySize(&width,&height); GFXGetDisplaySize(&width,&height);
TSTPIXEL fpixels[]={ TSTPIXEL fpixels[]={
@ -404,8 +405,8 @@ TEST_F(GRAPH,Format){
#endif #endif
TEST_F(GRAPH,Blit_Normal){ TEST_F(GRAPH,Blit_Normal){
HANDLE hwsurface; GFXHANDLE hwsurface;
HANDLE swsurface; GFXHANDLE swsurface;
unsigned int width,height; unsigned int width,height;
GFXGetDisplaySize(0,&width,&height); GFXGetDisplaySize(0,&width,&height);
GFXCreateSurface(0,&hwsurface,width,height,GPF_ARGB,1); GFXCreateSurface(0,&hwsurface,width,height,GPF_ARGB,1);
@ -429,8 +430,8 @@ TEST_F(GRAPH,Blit_Normal){
} }
TEST_F(GRAPH,Blit_CheckColor){ TEST_F(GRAPH,Blit_CheckColor){
HANDLE hwsurface; GFXHANDLE hwsurface;
HANDLE swsurface; GFXHANDLE swsurface;
unsigned int width,height; unsigned int width,height;
GFXRect r; GFXRect r;
#define FILLCOLOR 0xFFFF0000 #define FILLCOLOR 0xFFFF0000
@ -465,8 +466,8 @@ TEST_F(GRAPH,Blit_CheckColor){
} }
TEST_F(GRAPH,Blit_Range){ TEST_F(GRAPH,Blit_Range){
HANDLE hwsurface; GFXHANDLE hwsurface;
HANDLE swsurface; GFXHANDLE swsurface;
unsigned int width,height; unsigned int width,height;
GFXRect r; GFXRect r;
setRect(r,0,0,320,240); setRect(r,0,0,320,240);
@ -489,7 +490,7 @@ TEST_F(GRAPH,Blit_Range){
#if 0 #if 0
TEST_F(GRAPH,canvas){ TEST_F(GRAPH,canvas){
HANDLE surface; GFXHANDLE surface;
uint32_t width,height; uint32_t width,height;
uint32_t*buffer; uint32_t*buffer;
uint32_t pitch; uint32_t pitch;