📄 mbx12ddef.h
字号:
/******************************************************************************
* Name : mbx12ddef.h
* Title : MBX1 2D Hardware defs.
* Author(s) : Imagination Technologies
* Created : 1st August 2003
*
* Copyright : 2003 by Imagination Technologies Limited.
* All rights reserved. No part of this software, either
* material or conceptual may be copied or distributed,
* transmitted, transcribed, stored in a retrieval system
* or translated into any human or computer language in any
* form by any means, electronic, mechanical, manual or
* other-wise, or disclosed to third parties without the
* express written permission of Imagination Technologies
* Limited, Unit 8, HomePark Industrial Estate,
* King's Langley, Hertfordshire, WD4 8LZ, U.K.
*
* Description : Hardware definitions for MBX1 2D stuff.
*
* Platform : Generic
*
* Notes : formerly mbx12ddef.h mks rev 1.2
*
* Modifications:-
* $Log: mbx12ddef.h $
*
*
******************************************************************************/
#if !defined (__MBX12DDEF_H__)
#define __MBX12DDEF_H__
#define MAX_2D_WIDTH 4095
#define MAX_2D_HEIGHT 4095
/*
// Block headers
*/
#define MBX2D_CLIP_BH 0x00000000
#define MBX2D_PAT_BH 0x10000000
#define MBX2D_CTRL_BH 0x20000000
#define MBX2D_SRC_OFF_BH 0x30000000
#define MBX2D_MASK_OFF_BH 0x40000000
#define MBX2D_MASK_SIZE_BH 0x50000000
#define MBX2D_STRETCH_BH 0x60000000
#define MBX2D_FENCE_BH 0x70000000//flush between two blits
#define MBX2D_BLIT_BH 0x80000000
#define MBX2D_SRC_CTRL_BH 0x90000000
#define MBX2D_DST_CTRL_BH 0xA0000000
#define MBX2D_PAT_CTRL_BH 0xB0000000
#define MBX2D_SRC_PAL_BH 0xC0000000
#define MBX2D_PAT_PAL_BH 0xD0000000
#define MBX2D_MASK_CTRL_BH 0xE0000000
#define MBX2D_FLUSH_BH 0xF0000000//flush blits and generate interrupt
/*
// MBX2D_CLIP
*/
#define MBX2D_CLIPCOUNT_MAX 4
#define MBX2D_CLIPCOUNT_MASK 0x00000007
#define MBX2D_CLIPCOUNT_CLRMASK 0xFFFFFFF8
#define MBX2D_CLIPCOUNT_SHIFT 0
#define MBX2D_CLIP_XMAX_MASK 0xFFFF0000
#define MBX2D_CLIP_XMAX_CLRMASK 0x0000FFFF
#define MBX2D_CLIP_XMAX_SHIFT 16
#define MBX2D_CLIP_XMIN_MASK 0x0000FFFF
#define MBX2D_CLIP_XMIN_CLRMASK 0xFFFF0000
#define MBX2D_CLIP_XMIN_SHIFT 0
#define MBX2D_CLIP_YMAX_MASK 0xFFFF0000
#define MBX2D_CLIP_YMAX_CLRMASK 0x0000FFFF
#define MBX2D_CLIP_YMAX_SHIFT 16
#define MBX2D_CLIP_YMIN_MASK 0x0000FFFF
#define MBX2D_CLIP_YMIN_CLRMASK 0xFFFF0000
#define MBX2D_CLIP_YMIN_SHIFT 0
/*
// MBX2D_PAT_CTRL
*/
#define MBX2D_PAT_HEIGHT_MASK 0x0000003F
#define MBX2D_PAT_HEIGHT_SHIFT 0
#define MBX2D_PAT_WIDTH_MASK 0x00000FC0
#define MBX2D_PAT_WIDTH_SHIFT 6
#define MBX2D_PAT_YSTART_MASK 0x0001F000
#define MBX2D_PAT_YSTART_SHIFT 12
#define MBX2D_PAT_XSTART_MASK 0x007C0000
#define MBX2D_PAT_XSTART_SHIFT 18
/*
// MBX2D_CTRL - Present Flags
*/
#define MBX2D_SRCCK_CTRL 0x00000001
#define MBX2D_DSTCK_CTRL 0x00000002
#define MBX2D_ALPHA_CTRL 0x00000004
/* SRC/DST Colour Key Mask */
#define MBX2D_CK_COL_MASK 0xFFFFFFFF
#define MBX2D_CK_COL_CLRMASK 0x00000000
#define MBX2D_CK_COL_SHIFT 0
/* SRC/DST Colour Key Colour */
#define MBX2D_CK_MASK_MASK 0xFFFFFFFF
#define MBX2D_CK_MASK_CLRMASK 0x00000000
#define MBX2D_CK_MASK_SHIFT 0
/* Alpha Control */
#define MBX2D_GBLALPHA_MASK 0x000FF000
#define MBX2D_GBLALPHA_CLRMASK 0xFFF00FFF
#define MBX2D_GBLALPHA_SHIFT 12
#define MBX2D_SRCALPHA_OP_MASK 0x00700000
#define MBX2D_SRCALPHA_OP_CLRMASK 0xFF8FFFFF
#define MBX2D_SRCALPHA_OP_SHIFT 20
#define MBX2D_SRCALPHA_OP_ONE 0x00000000
#define MBX2D_SRCALPHA_OP_SRC 0x00100000
#define MBX2D_SRCALPHA_OP_DST 0x00200000
#define MBX2D_SRCALPHA_OP_SG 0x00300000
#define MBX2D_SRCALPHA_OP_DG 0x00400000
#define MBX2D_SRCALPHA_OP_GBL 0x00500000
#define MBX2D_SRCALPHA_OP_ZERO 0x00600000
#define MBX2D_SRCALPHA_INVERT 0x00800000
#define MBX2D_SRCALPHA_INVERT_CLR 0xFF7FFFFF
#define MBX2D_DSTALPHA_OP_MASK 0x07000000
#define MBX2D_DSTALPHA_OP_CLRMASK 0xF8FFFFFF
#define MBX2D_DSTALPHA_OP_SHIFT 24
#define MBX2D_DSTALPHA_OP_ONE 0x00000000
#define MBX2D_DSTALPHA_OP_SRC 0x01000000
#define MBX2D_DSTALPHA_OP_DST 0x02000000
#define MBX2D_DSTALPHA_OP_SG 0x03000000
#define MBX2D_DSTALPHA_OP_DG 0x04000000
#define MBX2D_DSTALPHA_OP_GBL 0x05000000
#define MBX2D_DSTALPHA_OP_ZERO 0x06000000
#define MBX2D_DSTALPHA_INVERT 0x08000000
#define MBX2D_DSTALPHA_INVERT_CLR 0xF7FFFFFF
/*
// MBX2D_SRC_OFF_BH
*/
#define MBX2D_SRCOFF_XSTART_MASK 0x07FFC000
#define MBX2D_SRCOFF_XSTART_SHIFT 14
#define MBX2D_SRCOFF_YSTART_MASK 0x00001FFF
#define MBX2D_SRCOFF_YSTART_SHIFT 0
/*
// MBX2D_MASK_OFF_BH
*/
#define MBX2D_MASKOFF_XSTART_MASK 0x07FFC000
#define MBX2D_MASKOFF_XSTART_SHIFT 14
#define MBX2D_MASKOFF_YSTART_MASK 0x00001FFF
#define MBX2D_MASKOFF_YSTART_SHIFT 0
/*
// MBX2D_MASK_SIZE_BH
*/
#define MBX2D_MASK_WIDTH_MASK 0x03FFC000
#define MBX2D_MASK_WIDTH_SHIFT 14
#define MBX2D_MASK_HEIGHT_MASK 0x00000FFF
#define MBX2D_MASK_HEIGHT_SHIFT 0
/*
// MBX2D_STRETCH_BH
*/
#define MBX2D_X_STRETCH_MASK 0x0FFC0000
#define MBX2D_X_STRETCH_SHIFT 18
#define MBX2D_Y_STRETCH_MASK 0x00003FF0
#define MBX2D_Y_STRETCH_SHIFT 4
// fixed point shift(5.5)
#define MBX2D_STRETCH_FPSHIFT 5
// default - no stretch
#define MBX2D_NO_STRETCH 0x00000020
// value required for rounding up to nearest pixel
#define MBX2D_STRETCH_ROUND_VAL 0x0000001F
/*
// MBX2D_BLIT
*/
#define MBX2D_USE_DST_FOR_MASK 0x08000000
#define MBX2D_TEXTROT_CLRMASK 0xF9FFFFFF
#define MBX2D_TEXTROT_NONE 0x00000000
#define MBX2D_TEXTROT_90DEGS 0x02000000
#define MBX2D_TEXTROT_180DEGS 0x04000000
#define MBX2D_TEXTROT_270DEGS 0x06000000
#define MBX2D_TEXTCOPY_CLRMASK 0xFE7FFFFF
#define MBX2D_TEXTCOPY_MASK 0x01800000
#define MBX2D_TEXTCOPY_TL2BR 0x00000000
#define MBX2D_TEXTCOPY_TR2BL 0x00800000
#define MBX2D_TEXTCOPY_BL2TR 0x01000000
#define MBX2D_TEXTCOPY_BR2TL 0x01800000
#define MBX2D_DSTCK_CLRMASK 0xFF9FFFFF
#define MBX2D_DSTCK_DISABLE 0x00000000
#define MBX2D_DSTCK_PASS 0x00200000
#define MBX2D_DSTCK_REJECT 0x00400000
#define MBX2D_SRCCK_CLRMASK 0xFFE7FFFF
#define MBX2D_SRCCK_DISABLE 0x00000000
#define MBX2D_SRCCK_PASS 0x00080000
#define MBX2D_SRCCK_REJECT 0x00100000
#define MBX2D_CLIP_ENABLE 0x00040000
#define MBX2D_ALPHA_ENABLE 0x00020000
#define MBX2D_PAT_CLRMASK 0xFFFEFFFF
#define MBX2D_PAT_MASK 0x00010000
#define MBX2D_USE_PAT 0x00010000
#define MBX2D_USE_FILL 0x00000000
#define MBX2D_ROP3B_MASK 0x0000FF00
#define MBX2D_ROP3B_CLRMASK 0xFFFF00FF
#define MBX2D_ROP3B_SHIFT 8
#define MBX2D_ROP3A_MASK 0x000000FF
#define MBX2D_ROP3A_CLRMASK 0xFFFFFF00
#define MBX2D_ROP3A_SHIFT 0
// equivalent rop4 mask
#define MBX2D_ROP4_MASK 0x0000FFFF
/*
DWORD0: (Only pass if Pattern control == Use Fill Colour)
Fill Colour RGBA8888
*/
#define MBX2D_FILLCOLOUR_MASK 0xFFFFFFFF
#define MBX2D_FILLCOLOUR_SHIFT 0
/*
DWORD1: (Always Present)
X Start (Dest)
Y Start (Dest)
N.B. DST coordinates are signed!
*/
#define MBX2D_DST_XSTART_MASK 0x1FFF0000
#define MBX2D_DST_XSTART_CLRMASK 0xE000FFFF
#define MBX2D_DST_XSTART_SHIFT 16
#define MBX2D_DST_YSTART_MASK 0x00001FFF
#define MBX2D_DST_YSTART_CLRMASK 0xFFFFE000
#define MBX2D_DST_YSTART_SHIFT 0
/*
DWORD2: (Always Present)
X End (Dest)
Y End (Dest)
N.B. DST coordinates are signed!
*/
#define MBX2D_DST_XEND_MASK 0x1FFF0000
#define MBX2D_DST_XEND_CLRMASK 0xE000FFFF
#define MBX2D_DST_XEND_SHIFT 16
#define MBX2D_DST_YEND_MASK 0x00001FFF
#define MBX2D_DST_YEND_CLRMASK 0xFFFFE000
#define MBX2D_DST_YEND_SHIFT 0
/*
Following this data the system memory pixel data follows
in line interleaved format. Only the mask and source
can come from system memory. The Pattern may be referenced
multiple times and hence must be copied to frame buffer and
the DST by definiton must be in frame buffer (we have to
be able to write to it).
DWORD padded SRC line - Only Passed if SRC surface present
DWORD padded MASK line - Only Passed if MASK surface present
repeat...
Etc.
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -