loc_graphics.h 3.3 KB
Newer Older
崔立宝's avatar
崔立宝 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
/**********************************************************************************************************
* @file    loc_graphics.h
* @author  HZS
* @version V1.0.0
* @date    2020.12.24
* @brief   c header file
********************************************************************************************************/
#ifndef LOC_GRAPHICS_H_
#define LOC_GRAPHICS_H_

#include "r_typedefs.h"        /* Renesas basic types, e.g. uint32_t */ 

/******************************
WINDOW  SET
******************************/

/******************************
WINDOW  SET
******************************/
#define LOC_NORMAL_W 1280
#define LOC_NORMAL_H 480
#define LOC_NORMAL_PITCH 1280

#define LOC_JPEG_W 1280
#define LOC_JPEG_H 480
#define LOC_JPEGL_PITCH 1280

#define GUI_BLENDMODE_CUSTOM   0
#define GUI_BLENDMODE_SRC_OVER 2

typedef struct
{
    uint32_t MemBase;
    uint32_t WrapBits;
    uint32_t WrapBase;
    uint32_t WrapSize;
    uint32_t Alignment;
} r_cdi_Wrap_t;

typedef enum
{
    Left_Sprite,  
    Middle_Sprite,  
    Right_Sprite, 
    Top1_Sprite,
    //Top2_Sprite,
    //AirP1_Sprite,
    Clock_Sprite,
    Top4_Sprite,
    Top5_Sprite,
    //AirP2_Sprite,
    Top6_Sprite,
    Top7_Sprite,
    Bottm1_Sprite,
    Bottm2_Sprite,
    Bottm2P_Sprite,
    Bottm3_Sprite,
    Bottm4_Sprite,
    Bottm5_Sprite,
    Bottm6_Sprite,
    Bottm7_Sprite,
    //Bottm8_Sprite,
    Bottm9_Sprite,
    Bottm10_Sprite,
    Bottm11_Sprite,
    Stop_Sprite,
    Park_Sprite,
    //Battery_Sprite,
    Charge_Sprite,
    
    Max_Sprite,
} SpriteName_t;

typedef enum
{
    TARGET_FLASH = 0u,
    TARGET_LRAM,
    TARGET_SDRAM,
    TARGET_VRAM,
    TARGET_VRAM_RGB888,
    TARGET_VRAM_ARGB6666,
    TARGET_VRAM_RGB666,
} SpriteTarge_t;

typedef struct
{
    uint16_t     u16ImageID;
    uint16_t     u16PosX;
    uint16_t     u16PosY;
    uint8_t      u8BlendEn;
    uint8_t      u8RotateEn;
    float        i32Angle;
    float        fModulus;
    uint8_t      u8Dir;
    uint8_t      u8AlphaEn;
    int32_t      i32Alpha;
    uint8_t      u8ScaleEn;
    float        fFactor;
    uint8_t      u8UnicodeEn;
    uint32_t     u32UnicodeColor;    
    uint8_t      UnicodeLen;
    uint16_t     *pUnicode;
} LogicLayerAttr_t;

typedef struct
{
    uint16_t     u16JPEGWinWidth;
    uint16_t     u16JPEGWinHeight;
    uint16_t     u16JPEGWinPitch;
    uint16_t     u16LocWinWidth;
    uint16_t     u16LocWinHeight;
    uint16_t     u16LocWinPitch;   
    uint8_t      u8ScreenRefrsh;   //单位Unit = 10ms
    uint8_t      u8NumOfMainScreenSprite;
    uint8_t      u8NumofAllSprite;
    uint16_t     u16NumofImage;
} r_screen_attr_t;

/**********************************************APP**********************************************/
void loc_App(void *pSpriteHandler, void *pScreenAttr);
r_Error_t loc_RenderTexture_Normal(SpriteName_t SpriteID, LogicLayerAttr_t locParam);
r_Error_t loc_Unicode_Normal(SpriteName_t  SpriteID, LogicLayerAttr_t locParam, uint16_t Unicode[], uint8_t Length);
void loc_Disable_Window_App(void);
void loc_Enable_Window_App(void);
void loc_Display_Service(void);   //要求10ms任务调用
void loc_power_off(void);
void loc_memset_LogicLayerAttr(LogicLayerAttr_t *locParam);
void loc_Del_Sprite(SpriteName_t DelStartID, SpriteName_t DelEndID);
void loc_free_mem(uint8_t startID, uint8_t endID);
void loc_enable_mem(uint8_t startID, uint8_t endID);

#endif