blend2d.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * blend2d.h
  3. *
  4. */
  5. #ifndef _BLEND2D_H
  6. #define _BLEND2D_H
  7. typedef enum {
  8. BLEND2D_RGBA = 0,
  9. BLEND2D_ARGB,
  10. } BLEND2D_BLEND_ENDIAN;
  11. typedef enum {
  12. BLEND2D_RGB = 0,
  13. BLEND2D_RBG,
  14. BLEND2D_GRB,
  15. BLEND2D_GBR,
  16. BLEND2D_BRG,
  17. BLEND2D_BGR,
  18. } BLEND2D_RGB_ORDER;
  19. typedef enum {
  20. BLEND2D_FORAMT_RGB565 = 5,
  21. BLEND2D_FORAMT_ARGB888 = 6,
  22. BLEND2D_FORAMT_BGR565 = BLEND2D_FORAMT_RGB565 | (5 << 8),
  23. BLEND2D_FORMAT_ABGR888 = BLEND2D_FORAMT_ARGB888 | (5 << 8),
  24. } BLEND2D_FORMAT;
  25. typedef enum {
  26. BLEND2D_ALPHA_DATA = 0,
  27. BLEND2D_ALPHA_REG,
  28. } BLEND2D_LAYER_ALPHA_MODE;
  29. typedef enum {
  30. BLEND2D_ALPHA_LAYER1 = 0,
  31. BLEND2D_ALPHA_LAYER2,
  32. BLEND2D_ALPHA_BLEND_REG,
  33. BLEND2D_ALPHA_LAYER1_2_BLEND_REG,
  34. } BLEND2D_BLEND_ALPHA_MODE;
  35. typedef enum {
  36. BLEND2D_MIX_BLEND = 0,
  37. BLEND2D_MIX_LAYER1 = 1,
  38. BLEND2D_MIX_LAYER2 = 2,
  39. BLEND2D_MIX_LAYER1_COLORKEY_COVER_TRANSP = 3,
  40. BLEND2D_MIX_LAYER2_COLORKEY_COVER_TRANSP = 0xc,
  41. BLEND2D_MIX_LAYER2_COLORKEY_BLEND_COVER = 0xd,
  42. BLEND2D_MIX_LAYER2_COLORKEY_BLEND_TRANSP = 0xe,
  43. } BLEND2D_BLEND_MIX_MODE;
  44. typedef enum {
  45. BLEND2D_BLD_ALPHA_NORMAL = 0,
  46. BLEND2D_BLD_ALPHA_SLAYER_DLAYER_ALPAH,
  47. BLEND2D_BLD_ALPHA_SLAYER_DLAYER_GLOBAL_ALPAH,
  48. } BLEND2D_BLENDING_ALPHA_MODE;
  49. typedef enum {
  50. BLEND2D_LAYER1 = 0,
  51. BLEND2D_LAYER2,
  52. BLEND2D_NUMS,
  53. } BLEND2D_LAYER;
  54. int blend2d_demo(void);
  55. int blend2d_init(void);
  56. void blend2d_fill(uint32_t address, int xpos, int ypos, int width, int height, int source_width, int source_height,
  57. uint8_t cr, uint8_t cg, uint8_t cb, int format, uint8_t opa, int alpha_byte);
  58. void blend2d_blit(uint32_t dst_addr, int dst_w, int dst_h, int dst_x, int dst_y, int dst_format, int width, int height,
  59. uint32_t src_addr, int src_w, int src_h, int src_x, int src_y, int src_format, uint8_t opa, int alpha_byte);
  60. int blend2d_run(void);
  61. #endif