diff options
Diffstat (limited to 'Source/DirectFB/gfxdrivers/sh772x/sh7722_types.h')
-rwxr-xr-x | Source/DirectFB/gfxdrivers/sh772x/sh7722_types.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/Source/DirectFB/gfxdrivers/sh772x/sh7722_types.h b/Source/DirectFB/gfxdrivers/sh772x/sh7722_types.h new file mode 100755 index 0000000..ea367da --- /dev/null +++ b/Source/DirectFB/gfxdrivers/sh772x/sh7722_types.h @@ -0,0 +1,136 @@ +#ifndef __SH7722__TYPES_H__ +#define __SH7722__TYPES_H__ + +#include <core/layers.h> + +#include <sh772x_gfx.h> + + +#define SH7722GFX_MAX_PREPARE 8192 + + +typedef enum { + SH7722_LAYER_INPUT1, + SH7722_LAYER_INPUT2, + SH7722_LAYER_INPUT3, + SH7722_LAYER_MULTIWIN +} SH7722LayerID; + + +typedef struct { + SH7722LayerID layer; +} SH7722LayerData; + +typedef struct { + int magic; + + CoreLayerRegionConfig config; + + CoreSurface *surface; + CorePalette *palette; +} SH7722RegionData; + + +typedef struct { + unsigned int added; + unsigned int visible; +} SH7722MultiLayerData; + +typedef struct { + int magic; + + int index; + CoreLayerRegionConfig config; + + CoreSurface *surface; + CorePalette *palette; +} SH7722MultiRegionData; + + +typedef struct { + int sh772x; + + int lcd_width; + int lcd_height; + int lcd_offset; + int lcd_pitch; + int lcd_size; + unsigned long lcd_phys; + DFBSurfacePixelFormat lcd_format; + + /* state validation */ + int v_flags; + + /* prepared register values */ + u32 ble_srcf; + u32 ble_dstf; + + /* cached values */ + unsigned long dst_phys; + int dst_pitch; + int dst_bpp; + int dst_index; + + unsigned long src_phys; + int src_pitch; + int src_bpp; + int src_index; + + unsigned long mask_phys; + int mask_pitch; + DFBSurfacePixelFormat mask_format; + int mask_index; + DFBPoint mask_offset; + DFBSurfaceMaskFlags mask_flags; + + DFBSurfaceDrawingFlags dflags; + DFBSurfaceBlittingFlags bflags; + DFBSurfaceRenderOptions render_options; + + bool ckey_b_enabled; + bool color_change_enabled; + bool mask_enabled; + + unsigned int input_mask; + + s32 matrix[6]; + DFBColor color; + + /* locking */ + FusionSkirmish beu_lock; + + + /* sh7723 */ + u32 rclr; + u32 color16; +} SH7722DeviceData; + + +typedef struct { + SH7722DeviceData *dev; + + CoreDFB *core; + CoreGraphicsDevice *device; + + CoreScreen *screen; + + CoreLayer *multi; + CoreLayer *input1; + CoreLayer *input2; + CoreLayer *input3; + + int gfx_fd; + SH772xGfxSharedArea *gfx_shared; + + int prep_num; + __u32 prep_buf[SH7722GFX_MAX_PREPARE]; + + volatile void *mmio_base; + + int num_inputs; + + volatile void *lcd_virt; +} SH7722DriverData; + +#endif + |