⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gxj_intern_putpixel.h

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 H
字号:
/* *   * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */#ifndef _GXJ_INTERN_IMAGE_PUTPIXEL_H_#define _GXJ_INTERN_IMAGE_PUTPIXEL_H_#include <gxj_putpixel.h>/* * Enable silent screen buffer clipping checks in all prim* functions */#define PRIM_CLIPPING        1#if ENABLE_BOUNDS_CHECKS#define CHECK_SBUF_CLIP_BOUNDS(_sbuf, clip) \  do { \   (_sbuf)->g = NULL; \   if ((clip[0] < 0) || (clip[0] > (_sbuf)->width) || \       (clip[1] < 0) || (clip[1] > (_sbuf)->height) || \       (clip[2] < 0) || (clip[2] > (_sbuf)->width) || \       (clip[3] < 0) || (clip[3] > (_sbuf)->height)) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "Clip outside gxj_screen_buffer at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,width=%d,height=%d\n",__FILE__,__LINE__,clip[0],clip[1],clip[2],clip[3],(_sbuf)->width,(_sbuf)->height); \  } \  } while (0)#define CHECK_XY_CLIP(_sbuf,_x,_y) \  do { \    if (((_sbuf)->g != NULL) && \       ((((_sbuf)->g)->clipX1 > (_x)) || (((_sbuf)->g)->clipX2 <= (_x)) || \       (((_sbuf)->g)->clipY1 > (_y)) || (((_sbuf)->g)->clipY2 <= (_y)))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "XY outside Clip at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_x),(_y)); \   if (((_x) < 0) || (((_sbuf)->width) <= (_x)) || \       ((_y) < 0) || (((_sbuf)->height) <= (_y))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "XY outside gxj_screen_buffer at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,width=%d,height=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_sbuf)->width,(_sbuf)->height,(_x),(_y)); \  } while (0)#define CHECK_PTR_CLIP(_sbuf,_ptr) \  do { \   int _idx = ((gxj_pixel_type*)_ptr)-(_sbuf)->pixelData; \   int _y = (_idx)/(_sbuf)->width; \   int _x = (_idx)%(_sbuf)->width; \   if ((((unsigned int)(_ptr) & (1))) || \       ((((_sbuf)->g != NULL) && (((_sbuf)->g)->clipX1 > (_x))) || \       (((_sbuf)->g)->clipX2 <= (_x+0)) || \       (((_sbuf)->g)->clipY1 > (_y)) || (((_sbuf)->g)->clipY2 <= (_y)))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "Pointer outside Clip at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,pointer=%p,index=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_ptr),(_idx),(_x),(_y)); \   if (((_x) < 0) || (((_sbuf)->width) <= (_x)) || \       ((_y) < 0) || (((_sbuf)->height) <= (_y))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "Pointer outside gxj_screen_buffer at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,width=%d,height=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_sbuf)->width,(_sbuf)->height,(_x),(_y)); \  } while (0)#define CHECK_LLPTR_CLIP(_sbuf,_ptr) \  do { \   int _idx = ((gxj_pixel_type*)_ptr)-(_sbuf)->pixelData; \   int _y = (_idx)/(_sbuf)->width; \   int _x = (_idx)%(_sbuf)->width; \   if ((((unsigned int)(_ptr) & (3))) || \       ((((_sbuf)->g != NULL) && (((_sbuf)->g)->clipX1 > (_x))) || \       (((_sbuf)->g)->clipX2 <= (_x+3)) || \       (((_sbuf)->g)->clipY1 > (_y)) || (((_sbuf)->g)->clipY2 <= (_y)))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "Pointer outside Clip at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,pointer=%p,index=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_ptr),(_idx),(_x),(_y)); \   if (((_x) < 0) || (((_sbuf)->width) <= (_x)) || \       ((_y) < 0) || (((_sbuf)->height) <= (_y))) \      reportToLog(LOG_CRITICAL, LC_LOWUI, "Pointer outside gxj_screen_buffer at file %s, line %d, clipX1=%d,clipY1=%d,clipX2=%d,clipY2=%d,width=%d,height=%d,x=%d,y=%d\n",__FILE__,__LINE__,((_sbuf)->g)->clipX1,((_sbuf)->g)->clipY1,((_sbuf)->g)->clipX2,((_sbuf)->g)->clipY2,(_sbuf)->width,(_sbuf)->height,(_x),(_y)); \  } while (0)#else#define CHECK_SBUF_CLIP_BOUNDS(_sbuf, _graphics)#define CHECK_XY_CLIP(_sbuf,_x,_y)#define CHECK_PTR_CLIP(_sbuf,_ptr)#define CHECK_LLPTR_CLIP(_sbuf,_ptr)#endif#ifndef max#define max(x,y)        x > y ? x :y#endif#ifndef min#define min(x,y)        x > y ? y: x#endif#ifndef MAXINT32#define MAXINT32 ((int)0x7FFFFFFF)#endif/* flags for line types */#define SOLID 0#define DOTTED 1#define NOTFILLED 0#define FILLED    1#ifndef NULL#define NULL   0#endif #ifndef FALSE#define FALSE   0#endif#ifndef TRUE#define TRUE   1#endif /** * draw pixel at pixelData[y*width+x] * partial clipping to sbuf[width,height] and (y*width+x < 0) */#if PRIM_CLIPPING#define PRIMDRAWPIXEL(_sbuf,_color,_x,_y) \  do { \    int _i= (_y) * (_sbuf)->width + (_x); \    if (((_x) < (_sbuf)->width) && ((_y) < (_sbuf)->height) && (_i>=0)) { \      CHECK_XY_CLIP((_sbuf),(_x),(_y)); \      (_sbuf)->pixelData[_i] = (_color); \    } \  } while (0)#else#define PRIMDRAWPIXEL(_sbuf,_color,_x,_y) \  do { \    int _i= (_y) * (_sbuf)->width + (_x); \    CHECK_XY_CLIP((_sbuf),(_x),(_y)); \    (_sbuf)->pixelData[_i] = (_color); \  } while (0)#endifvoid draw_clipped_line(gxj_screen_buffer *sbuf,                        gxj_pixel_type color, int lineStyle,                       const jshort *clip, int x1, int y1, int x2, int y2);void draw_clipped_rect(gxj_screen_buffer *sbuf,                        gxj_pixel_type color, int lineStyle,                        int filled, const jshort *clip,                        int x, int y, int width, int height);void fill_triangle(gxj_screen_buffer *sbuf, gxj_pixel_type color,                         const jshort *clip,                         int x1, int y1, int x2, int y2, int x3, int y3);void draw_arc(gxj_pixel_type color, const jshort *clip,               gxj_screen_buffer *sbuf,              int lineStyle, int x, int y, int width, int height,	      int filled, int startAngle, int arcAngle);void draw_roundrect(gxj_pixel_type color, const jshort *clip,                     gxj_screen_buffer *sbuf,                    int lineStyle, int x, int y,		    int width, int height,		    int filled, int arcWidth, int arcHeight);#endif /* _MIDPINTERN_PUTPIXEL_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -