#ifndef GRAPHIC_H__ #define GRAPHIC_H__ #define GFX_VO_NONE (0x00U) #define GFX_VO_SINGLE_RGB888 (0x01U) #define GFX_VO_SINGLE_RGB666 (0x02U) #define GFX_VO_SINGLE_OPENLDI (0x03U) /* --- Reserved output mode for future expansion --- #define GFX_VO_SINGLE_SERRGB (0x04U) #define GFX_VO_DUAL_OPENLDI_SERRGB (0x05U) #define GFX_VO_DUAL_VODDR (0x06U) */ #define GFX_VI_NONE (0x00U) #define GFX_VI_ITU656 (0x10U) /* --- Reserved input mode for future expansion --- #define GFX_VI_RGB666 (0x20U) */ #define GFX_DHD_UNIT (0U) #define GFX_DHD_ALIGN(ADDR,BLOCK) ((ADDR+(BLOCK-1)) & ~(BLOCK-1)) #define GFX_DHD_USER_INSTANCES (1U) #define GFX_DHD_JOB_SIZE (512U) /* Jobsize: Number of bytes in one job buffer */ #define GFX_DHD_JOB_COUNT (8U) /* Jobcount: Recommended number of jobs in flight per client */ #define GFX_DHD_RING_SIZE (1024U) /* Ringsize: Number of bytes in ringbuffer, needs to be a power of two */ #define GFX_DHD_USE_PC (1U) /* Use performance counters: Set to 1 to reserve memory for performance counters */ #define GFX_DHD_STATE_STORAGE (480U) /* one DHD context with a config with 2 tex units, 3 color unit passes and 4 const colors */ /* CAUTION: you have to adapt this when using dhd_alloc* manually, when using * DHD performance counter or when using DHD command list feature! * * Example: Each of the 4 available performance counters requires allocation of 4 bytes. Allocation is aligned to 128 bytes, thus for four PC's 512 additional bytes are required. */ #define GFX_DHD_RING_SIZE_ALLOC GFX_DHD_ALIGN(GFX_DHD_RING_SIZE + 4U, 128U) #define GFX_DHD_STATE_STORAGE_ALLOC GFX_DHD_ALIGN(GFX_DHD_STATE_STORAGE, 128U) #define GFX_DHD_PC_ALLOC GFX_DHD_ALIGN(GFX_DHD_USE_PC * 4U * 128U, 128U) #define GFX_DHD_MEMORY_SIZE (GFX_DHD_RING_SIZE_ALLOC + \ GFX_DHD_USER_INSTANCES * (GFX_DHD_STATE_STORAGE_ALLOC + GFX_DHD_JOB_COUNT * GFX_DHD_JOB_SIZE) + \ GFX_DHD_PC_ALLOC) #define GFX_VRAM0 (0x3FD9C000) #define GFX_VRAM1 (0x3FECE000) #define GFX_DHD_BASE GFX_VRAM0 #define GFX_VO0_BASE (GFX_DHD_BASE + GFX_DHD_MEMORY_SIZE) #define GFX_VID_FB_BASE (GFX_VO0_BASE) #define GFX_SDRAM_FB_BASE (0x40000000) #define GFX_VRAM0_SIZE (0x132000) /* 1.195 MB */ #define GFX_VRAM1_SIZE (0x132000) /* 1.195 MB */ #define GFX_SDRAM_SIZE (32u * 1024u * 1024u) /* 32 MB */ #define GFX_VIDMEM_SIZE (GFX_VRAM0_SIZE + GFX_VRAM1_SIZE - GFX_DHD_MEMORY_SIZE) #define GFX_VID_HP_BLOCK_SIZE (4 * 1024) #define GFX_VID_HP_BLOCK_NB (GFX_VIDMEM_SIZE / GFX_VID_HP_BLOCK_SIZE) #define GFX_SDRAM_HP_BLOCK_SIZE (8 * 1024) #define GFX_SDRAM_HP_BLOCK_NB (GFX_SDRAM_SIZE / GFX_SDRAM_HP_BLOCK_SIZE) #define GFX_CPU_HP_BLOCK_NB (0x600UL) /* Number of blocks the CPU heap is divided into */ #define GFX_CPU_HP_BLOCK_SIZE (0x100UL) /* Size of one CPU heap block */ #define GFX_HEAP_SIZE (GFX_CPU_HP_BLOCK_NB * GFX_CPU_HP_BLOCK_SIZE) #define GFX_WM_UNIT (0U) #define GFX_WM_MSG_QUEUE_LEN (512U) #define GFX_DISPLAY_NAME "AUO_C070VAN02_7_800x480" //#define GFX_DISPLAY_NAME "AUO_C103VAN01_1_1280x480" #define GFX_USE_INTERNAL_VRAM (0U) #define GFX_VRAM_SIZE_IN_SDRAM (32UL * 1024UL * 1024UL) // #define GFX_VID_HP_BLOCK_SIZE (0x400UL) #define GFX_USE_VOWE (0U) /* VOWE DL buffer(x2) is allocated in bottom of VRAM */ #define GFX_VOWE_DL_BUF_SIZE (0x00010000UL) #define GFX_VOWE_WORK_BUFF_SIZE (0x00020000UL) #if 0 #define GFX_USE_INTERNAL_VRAM (0U) #define GFX_VRAM_SIZE_IN_SDRAM (32UL * 1024UL * 1024UL) #define GFX_CPU_HP_BLOCK_NB (0x800UL) /* Number of blocks the CPU heap is divided into */ #define GFX_CPU_HP_BLOCK_SIZE (0x40UL) /* Size of one CPU heap block */ #define GFX_VID_HP_BLOCK_SIZE (0x400UL) #define GFX_USE_VOWE (1U) /* VOWE DL buffer(x2) is allocated in bottom of VRAM */ #define GFX_VOWE_DL_BUF_SIZE (0x00010000UL) #define GFX_VOWE_WORK_BUFF_SIZE (0x00020000UL) #define GFX_DHD_UNIT (0U) #define GFX_DHD_ALIGN(ADDR,BLOCK) ((ADDR+(BLOCK-1)) & ~(BLOCK-1)) #define GFX_DHD_USER_INSTANCES (1U) #define GFX_DHD_JOB_SIZE (512U) /* Jobsize: Number of bytes in one job buffer */ #define GFX_DHD_JOB_COUNT (8U) /* Jobcount: Recommended number of jobs in flight per client */ #define GFX_DHD_RING_SIZE (1024U) /* Ringsize: Number of bytes in ringbuffer, needs to be a power of two */ #define GFX_DHD_USE_PC (1U) Use performance counters: Set to 1 to reserve memory for performance counters #define GFX_DHD_STATE_STORAGE (480U) /* one DHD context with a config with 2 tex units, 3 color unit passes and 4 const colors */ /* CAUTION: you have to adapt this when using dhd_alloc* manually, when using * DHD performance counter or when using DHD command list feature! * * Example: Each of the 4 available performance counters requires allocation of 4 bytes. Allocation is aligned to 128 bytes, thus for four PC's 512 additional bytes are required. */ #define GFX_DHD_RING_SIZE_ALLOC GFX_DHD_ALIGN(GFX_DHD_RING_SIZE + 4U, 128U) #define GFX_DHD_STATE_STORAGE_ALLOC GFX_DHD_ALIGN(GFX_DHD_STATE_STORAGE, 128U) #define GFX_DHD_PC_ALLOC GFX_DHD_ALIGN(GFX_DHD_USE_PC * 4U * 128U, 128U) #define GFX_DHD_MEMORY_SIZE (GFX_DHD_RING_SIZE_ALLOC + \ GFX_DHD_USER_INSTANCES * (GFX_DHD_STATE_STORAGE_ALLOC + GFX_DHD_JOB_COUNT * GFX_DHD_JOB_SIZE) + \ GFX_DHD_PC_ALLOC) #define GFX_WM_UNIT (0U) #define GFX_WM_MSG_QUEUE_LEN (512U) #define GFX_DISPLAY_NAME "AUO_C070VAN02_7_800x480" //#define GFX_DISPLAY_NAME "AUO_C103VAN01_1_1280x480" #endif extern void Gfx_Init(uint8_t u8Mode); extern void Gfx_Sys_Start(void); extern void Gfx_Sys_Stop(void); extern void Gfx_Create_Window(r_wm_WinMode_t enMode, uint32_t u32PosX, uint32_t u32PosY, uint32_t u32PosZ, uint32_t u32Width, uint32_t u32Height, uint32_t u32Pitch, uint32_t u32Bnumber, r_wm_WinColorFmt_t enColorFmt, r_wm_Window_t* pstWindow); void Loc_Display_Red(uint8_t ColorR, uint8_t ColorG, uint8_t ColorB); #endif /* GRAPHIC_H__ */