亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tkmacdraw.c

?? linux系統(tǒng)下的音頻通信
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  * tkMacDraw.c -- * *	This file contains functions that preform drawing to *	Xlib windows.  Most of the functions simple emulate *	Xlib functions. * * Copyright (c) 1995-1997 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkMacDraw.c 1.55 97/11/20 18:28:56 */#include "tkInt.h"#include "X.h"#include "Xlib.h"#include <stdio.h>#include <tcl.h>#include <Windows.h>#include <Fonts.h>#include <QDOffscreen.h>#include "tkMacInt.h"#ifndef PI#    define PI 3.14159265358979323846#endif/* * Temporary regions that can be reused. */static RgnHandle tmpRgn = NULL;static RgnHandle tmpRgn2 = NULL;static PixPatHandle gPenPat = NULL;/* * Prototypes for functions used only in this file. */static unsigned char    InvertByte _ANSI_ARGS_((unsigned char data));/* *---------------------------------------------------------------------- * * XCopyArea -- * *	Copies data from one drawable to another using block transfer *	routines. * * Results: *	None. * * Side effects: *	Data is moved from a window or bitmap to a second window or *	bitmap. * *---------------------------------------------------------------------- */void XCopyArea(    Display* display,		/* Display. */    Drawable src,		/* Source drawable. */    Drawable dest,		/* Destination drawable. */    GC gc,			/* GC to use. */    int src_x,			/* X & Y, width & height */    int src_y,			/* define the source rectangle */    unsigned int width,		/* the will be copied. */    unsigned int height,    int dest_x,			/* Dest X & Y on dest rect. */    int dest_y){    Rect srcRect, destRect;    BitMapPtr srcBit, destBit;    MacDrawable *srcDraw = (MacDrawable *) src;    MacDrawable *destDraw = (MacDrawable *) dest;    GWorldPtr srcPort, destPort;    CGrafPtr saveWorld;    GDHandle saveDevice;    short tmode;    RGBColor origForeColor, origBackColor, whiteColor, blackColor;    destPort = TkMacGetDrawablePort(dest);    srcPort = TkMacGetDrawablePort(src);    display->request++;    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);    GetForeColor(&origForeColor);    GetBackColor(&origBackColor);    whiteColor.red = 0;    whiteColor.blue = 0;    whiteColor.green = 0;    RGBForeColor(&whiteColor);    blackColor.red = 0xFFFF;    blackColor.blue = 0xFFFF;    blackColor.green = 0xFFFF;    RGBBackColor(&blackColor);        TkMacSetUpClippingRgn(dest);        /*     *  We will change the clip rgn in this routine, so we need to      *  be able to restore it when we exit.     */         if (tmpRgn2 == NULL) {        tmpRgn2 = NewRgn();    }    GetClip(tmpRgn2);    if (((TkpClipMask*)gc->clip_mask)->type == TKP_CLIP_REGION) {	RgnHandle clipRgn = (RgnHandle)	        ((TkpClipMask*)gc->clip_mask)->value.region;		int xOffset, yOffset;		if (tmpRgn == NULL) {	    tmpRgn = NewRgn();	}		xOffset = destDraw->xOff + gc->clip_x_origin;	yOffset = destDraw->yOff + gc->clip_y_origin;		OffsetRgn(clipRgn, xOffset, yOffset);		GetClip(tmpRgn);	SectRgn(tmpRgn, clipRgn, tmpRgn);		SetClip(tmpRgn);		OffsetRgn(clipRgn, -xOffset, -yOffset);    }        srcBit = &((GrafPtr) srcPort)->portBits;    destBit = &((GrafPtr) destPort)->portBits;    SetRect(&srcRect, (short) (srcDraw->xOff + src_x),	    (short) (srcDraw->yOff + src_y),	    (short) (srcDraw->xOff + src_x + width),	    (short) (srcDraw->yOff + src_y + height));	    SetRect(&destRect, (short) (destDraw->xOff + dest_x),	    (short) (destDraw->yOff + dest_y), 	    (short) (destDraw->xOff + dest_x + width),	    (short) (destDraw->yOff + dest_y + height));	    tmode = srcCopy;    CopyBits(srcBit, destBit, &srcRect, &destRect, tmode, NULL);    RGBForeColor(&origForeColor);    RGBBackColor(&origBackColor);    SetClip(tmpRgn2);    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * XCopyPlane -- * *	Copies a bitmap from a source drawable to a destination *	drawable.  The plane argument specifies which bit plane of *	the source contains the bitmap.  Note that this implementation *	ignores the gc->function. * * Results: *	None. * * Side effects: *	Changes the destination drawable. * *---------------------------------------------------------------------- */voidXCopyPlane(    Display* display,		/* Display. */    Drawable src,		/* Source drawable. */    Drawable dest,		/* Destination drawable. */    GC gc,			/* The GC to use. */    int src_x,			/* X, Y, width & height */    int src_y,			/* define the source rect. */    unsigned int width,    unsigned int height,    int dest_x,			/* X & Y on dest where we will copy. */    int dest_y,    unsigned long plane)	/* Which plane to copy. */{    Rect srcRect, destRect;    BitMapPtr srcBit, destBit, maskBit;    MacDrawable *srcDraw = (MacDrawable *) src;    MacDrawable *destDraw = (MacDrawable *) dest;    GWorldPtr srcPort, destPort, maskPort;    CGrafPtr saveWorld;    GDHandle saveDevice;    RGBColor macColor;     TkpClipMask *clipPtr = (TkpClipMask*)gc->clip_mask;    short tmode;    destPort = TkMacGetDrawablePort(dest);    srcPort = TkMacGetDrawablePort(src);        display->request++;    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);    TkMacSetUpClippingRgn(dest);    srcBit = &((GrafPtr) srcPort)->portBits;    destBit = &((GrafPtr) destPort)->portBits;    SetRect(&srcRect, (short) (srcDraw->xOff + src_x),	    (short) (srcDraw->yOff + src_y),	    (short) (srcDraw->xOff + src_x + width),	    (short) (srcDraw->yOff + src_y + height));    SetRect(&destRect, (short) (destDraw->xOff + dest_x),	    (short) (destDraw->yOff + dest_y), 	    (short) (destDraw->xOff + dest_x + width),	    (short) (destDraw->yOff + dest_y + height));    tmode = srcOr;    tmode = srcCopy + transparent;    if (TkSetMacColor(gc->foreground, &macColor) == true) {	RGBForeColor(&macColor);    }    if (clipPtr == NULL || clipPtr->type == TKP_CLIP_REGION) {	/*	 * Case 1: opaque bitmaps.	 */	TkSetMacColor(gc->background, &macColor);	RGBBackColor(&macColor);	tmode = srcCopy;	CopyBits(srcBit, destBit, &srcRect, &destRect, tmode, NULL);    } else if (clipPtr->type == TKP_CLIP_PIXMAP) {	if (clipPtr->value.pixmap == src) {	    /*	     * Case 2: transparent bitmaps.  If it's color we ignore	     * the forecolor.	     */	    if ((**(srcPort->portPixMap)).pixelSize == 1) {		tmode = srcOr;	    } else {		tmode = transparent;	    }	    CopyBits(srcBit, destBit, &srcRect, &destRect, tmode, NULL);	} else {	    /*	     * Case 3: two arbitrary bitmaps.	 	     */	    tmode = srcCopy;	    maskPort = TkMacGetDrawablePort(clipPtr->value.pixmap);	    maskBit = &((GrafPtr) maskPort)->portBits;	    CopyDeepMask(srcBit, maskBit, destBit, &srcRect, &srcRect, &destRect, tmode, NULL);	}    }    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * TkPutImage -- * *	Copies a subimage from an in-memory image to a rectangle of *	of the specified drawable. * * Results: *	None. * * Side effects: *	Draws the image on the specified drawable. * *---------------------------------------------------------------------- */void TkPutImage(    unsigned long *colors,	/* Unused on Macintosh. */    int ncolors,		/* Unused on Macintosh. */    Display* display,		/* Display. */    Drawable d,			/* Drawable to place image on. */    GC gc,			/* GC to use. */    XImage* image,		/* Image to place. */    int src_x,			/* Source X & Y. */    int src_y,    int dest_x,			/* Destination X & Y. */    int dest_y,    unsigned int width,		/* Same width & height for both */    unsigned int height)	/* distination and source. */{    MacDrawable *destDraw = (MacDrawable *) d;    CGrafPtr saveWorld;    GDHandle saveDevice;    GWorldPtr destPort;    int i, j;    BitMap bitmap;    char *newData = NULL;    Rect destRect, srcRect;    destPort = TkMacGetDrawablePort(d);    SetRect(&destRect, dest_x, dest_y, dest_x + width, dest_y + height);    SetRect(&srcRect, src_x, src_y, src_x + width, src_y + height);    display->request++;    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);    TkMacSetUpClippingRgn(d);    if (image->depth == 1) {	/* 	 * This code assumes a pixel depth of 1 	 */	bitmap.bounds.top = bitmap.bounds.left = 0;	bitmap.bounds.right = (short) image->width;	bitmap.bounds.bottom = (short) image->height;	if ((image->bytes_per_line % 2) == 1) {	    char *newPtr, *oldPtr;	    newData = (char *) ckalloc(image->height *		    (image->bytes_per_line + 1));	    newPtr = newData;	    oldPtr = image->data;	    for (i = 0; i < image->height; i++) {		for (j = 0; j < image->bytes_per_line; j++) {		    *newPtr = InvertByte((unsigned char) *oldPtr);		    newPtr++, oldPtr++;		}	    *newPtr = 0;	    newPtr++;	    }	    bitmap.baseAddr = newData;	    bitmap.rowBytes = image->bytes_per_line + 1;	} else {	    newData = (char *) ckalloc(image->height * image->bytes_per_line);	    for (i = 0; i < image->height * image->bytes_per_line; i++) {		newData[i] = InvertByte((unsigned char) image->data[i]);	    }			    bitmap.baseAddr = newData;	    bitmap.rowBytes = image->bytes_per_line;	}	CopyBits(&bitmap, &((GrafPtr) destPort)->portBits, 		&srcRect, &destRect, srcCopy, NULL);    } else {    	/* Color image */    	PixMap pixmap;    		pixmap.bounds.left = 0;	pixmap.bounds.top = 0;	pixmap.bounds.right = (short) image->width;	pixmap.bounds.bottom = (short) image->height;	pixmap.pixelType = RGBDirect;	pixmap.pmVersion = 4;	/* 32bit clean */	pixmap.packType = 0;	pixmap.packSize = 0;	pixmap.hRes = 0x00480000;	pixmap.vRes = 0x00480000;	pixmap.pixelSize = 32;	pixmap.cmpCount = 3;	pixmap.cmpSize = 8;	pixmap.planeBytes = 0;	pixmap.pmTable = NULL;	pixmap.pmReserved = 0;	pixmap.baseAddr = image->data;	pixmap.rowBytes = image->bytes_per_line | 0x8000;		CopyBits((BitMap *) &pixmap, &((GrafPtr) destPort)->portBits, 	    &srcRect, &destRect, srcCopy, NULL);    }        if (newData != NULL) {	ckfree(newData);    }    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * XFillRectangles -- * *	Fill multiple rectangular areas in the given drawable. * * Results: *	None. * * Side effects: *	Draws onto the specified drawable. * *---------------------------------------------------------------------- */void XFillRectangles(    Display* display,		/* Display. */    Drawable d,			/* Draw on this. */    GC gc,			/* Use this GC. */    XRectangle *rectangles,	/* Rectangle array. */    int n_rectangels)		/* Number of rectangles. */{    MacDrawable *macWin = (MacDrawable *) d;    CGrafPtr saveWorld;    GDHandle saveDevice;    GWorldPtr destPort;    Rect theRect;    int i;    destPort = TkMacGetDrawablePort(d);    display->request++;    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);    TkMacSetUpClippingRgn(d);    TkMacSetUpGraphicsPort(gc);    for (i=0; i<n_rectangels; i++) {	theRect.left = (short) (macWin->xOff + rectangles[i].x);	theRect.top = (short) (macWin->yOff + rectangles[i].y);	theRect.right = (short) (theRect.left + rectangles[i].width);	theRect.bottom = (short) (theRect.top + rectangles[i].height);	FillCRect(&theRect, gPenPat);    }    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * XDrawLines -- * *	Draw connected lines. * * Results: *	None. * * Side effects: *	Renders a series of connected lines. * *---------------------------------------------------------------------- */void XDrawLines(    Display* display,		/* Display. */    Drawable d,			/* Draw on this. */    GC gc,			/* Use this GC. */    XPoint* points,		/* Array of points. */    int npoints,		/* Number of points. */    int mode)			/* Line drawing mode. */{    MacDrawable *macWin = (MacDrawable *) d;    CGrafPtr saveWorld;    GWorldPtr destPort;    GDHandle saveDevice;    int i;    destPort = TkMacGetDrawablePort(d);    display->request++;    if (npoints < 2) {    	return;  /* TODO: generate BadValue error. */    }    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);        TkMacSetUpClippingRgn(d);    TkMacSetUpGraphicsPort(gc);    ShowPen();    PenPixPat(gPenPat);    MoveTo((short) (macWin->xOff + points[0].x),	    (short) (macWin->yOff + points[0].y));    for (i = 1; i < npoints; i++) {	if (mode == CoordModeOrigin) {	    LineTo((short) (macWin->xOff + points[i].x),		    (short) (macWin->yOff + points[i].y));	} else {	    Line((short) (macWin->xOff + points[i].x),		    (short) (macWin->yOff + points[i].y));	}    }    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * XDrawSegments -- * *	Draw unconnected lines. * * Results: *	None. * * Side effects: *	Renders a series of connected lines. * *---------------------------------------------------------------------- */void XDrawSegments(    Display *display,    Drawable  d,    GC gc,    XSegment *segments,    int  nsegments){    MacDrawable *macWin = (MacDrawable *) d;    CGrafPtr saveWorld;    GWorldPtr destPort;    GDHandle saveDevice;    int i;    destPort = TkMacGetDrawablePort(d);    display->request++;    GetGWorld(&saveWorld, &saveDevice);    SetGWorld(destPort, NULL);        TkMacSetUpClippingRgn(d);    TkMacSetUpGraphicsPort(gc);    ShowPen();    PenPixPat(gPenPat);    for (i = 0; i < nsegments; i++) {        MoveTo((short) (macWin->xOff + segments[i].x1),	        (short) (macWin->yOff + segments[i].y1));	LineTo((short) (macWin->xOff + segments[i].x2),		(short) (macWin->yOff + segments[i].y2));    }    SetGWorld(saveWorld, saveDevice);}/* *---------------------------------------------------------------------- * * XFillPolygon -- * *	Draws a filled polygon. * * Results: *	None. * * Side effects: *	Draws a filled polygon on the specified drawable. * *---------------------------------------------------------------------- */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日产国码二区| 日韩欧美的一区| 一区二区三区蜜桃| 色视频一区二区| 亚洲精品乱码久久久久久久久 | 91久久精品网| 亚洲精选视频在线| 91福利国产精品| 午夜视频一区在线观看| 91精品免费观看| 国产一区啦啦啦在线观看| 久久精品视频一区二区| 不卡影院免费观看| 亚洲伦理在线免费看| 欧美日韩黄色影视| 久久成人久久鬼色| 亚洲国产精品高清| 欧美亚洲免费在线一区| 免费看黄色91| 中文字幕第一区二区| 一本一本久久a久久精品综合麻豆| 亚洲激情校园春色| 9191成人精品久久| 国产精品资源站在线| 最新中文字幕一区二区三区 | 精品国产制服丝袜高跟| 国产不卡高清在线观看视频| 亚洲免费电影在线| 日韩一区二区三区免费看| 国产精品正在播放| 一区二区三区四区不卡视频| 69av一区二区三区| 国产aⅴ精品一区二区三区色成熟| 亚洲欧美日韩系列| 日韩欧美电影在线| 91老师国产黑色丝袜在线| 免费看精品久久片| 亚洲免费观看高清完整| 欧美tickle裸体挠脚心vk| 91首页免费视频| 寂寞少妇一区二区三区| 亚洲女同ⅹxx女同tv| 日韩欧美高清一区| 色av一区二区| 国产精品亚洲一区二区三区妖精| 亚洲精品视频自拍| 国产亚洲污的网站| 91精品国产综合久久小美女| av欧美精品.com| 国产真实乱对白精彩久久| 亚洲一级二级在线| 国产精品成人免费| 久久久久国产精品人| 欧美日韩黄色一区二区| 成av人片一区二区| 国产在线一区二区综合免费视频| 一区二区久久久久久| 国产精品美女久久久久久久久| 91精品国产aⅴ一区二区| 91碰在线视频| 成人性生交大片免费看视频在线| 麻豆精品视频在线观看免费| 一区二区三区日韩欧美| 国产精品你懂的| 国产亚洲一区二区三区在线观看 | 成人福利视频网站| 国产一区二区在线观看视频| 免费在线视频一区| 日韩精品视频网| 午夜精品福利一区二区三区蜜桃| 亚洲人成网站影音先锋播放| 亚洲国产成人自拍| 国产视频一区二区在线| 337p日本欧洲亚洲大胆色噜噜| 欧美一区二区三区男人的天堂 | 欧美福利电影网| 在线观看日韩高清av| 色婷婷久久99综合精品jk白丝 | 一道本成人在线| av毛片久久久久**hd| 99久久99久久精品免费看蜜桃| 国产91高潮流白浆在线麻豆| 国产福利一区二区| 成人免费福利片| aaa国产一区| 91视频精品在这里| 91麻豆免费看| 欧美影视一区在线| 欧美日韩国产乱码电影| 欧美一区二区三区影视| 欧美一级二级三级蜜桃| 日韩三级电影网址| 久久久精品人体av艺术| 欧美韩国一区二区| 中文字幕日本不卡| 一二三区精品福利视频| 日本亚洲免费观看| 久久成人av少妇免费| 国产精品88888| www.日韩大片| 欧美在线影院一区二区| 6080亚洲精品一区二区| 精品国产乱子伦一区| 中文无字幕一区二区三区| 最近日韩中文字幕| 亚洲成人动漫av| 六月丁香综合在线视频| 国产成人精品三级| 色猫猫国产区一区二在线视频| 欧美日本韩国一区| 久久尤物电影视频在线观看| 国产精品少妇自拍| 一区二区三区中文字幕在线观看| 五月激情六月综合| 国产精品亚洲第一| 日本丰满少妇一区二区三区| 最近日韩中文字幕| 天天亚洲美女在线视频| 国产河南妇女毛片精品久久久| 99精品久久只有精品| 欧美狂野另类xxxxoooo| 久久精子c满五个校花| 一区二区在线观看视频在线观看| 日本不卡中文字幕| 9i看片成人免费高清| 337p亚洲精品色噜噜狠狠| 国产日产亚洲精品系列| 亚洲卡通欧美制服中文| 久久66热re国产| 91久久精品国产91性色tv| xf在线a精品一区二区视频网站| 亚洲天堂av一区| 韩国三级中文字幕hd久久精品| 91影院在线免费观看| 精品久久久久香蕉网| 一区二区在线观看免费| 国产乱码精品一区二区三区五月婷| 色狠狠综合天天综合综合| 久久综合九色综合欧美亚洲| 亚洲乱码国产乱码精品精98午夜| 六月丁香婷婷久久| 欧美视频一区二区三区| 中文字幕第一页久久| 精品一区二区三区av| 欧美日韩国产欧美日美国产精品| 国产精品女人毛片| 精品在线你懂的| 欧美精品tushy高清| 亚洲精品综合在线| 成人免费视频caoporn| 51久久夜色精品国产麻豆| 亚洲手机成人高清视频| 国产成人一级电影| 欧美va亚洲va香蕉在线| 午夜电影网一区| 欧美在线观看视频一区二区| 国产精品高潮呻吟| 高清不卡在线观看av| 2020国产精品| 国精产品一区一区三区mba视频 | 国产精品一区二区久激情瑜伽| 欧美日韩久久不卡| 夜夜揉揉日日人人青青一国产精品| 99精品在线免费| 18成人在线观看| 成人激情免费视频| 欧美高清一级片在线观看| 国产一区三区三区| 久久蜜臀中文字幕| 国产美女娇喘av呻吟久久 | 久久久99精品久久| 国产麻豆视频一区二区| 亚洲精品在线一区二区| 狠狠色2019综合网| 久久久久久久久岛国免费| 国产乱码精品一区二区三区忘忧草| 久久久噜噜噜久噜久久综合| 国产精品综合二区| 国产精品久久久久久久久久免费看 | 亚洲超碰精品一区二区| 欧美日韩精品一区二区天天拍小说 | 精品国产精品一区二区夜夜嗨| 麻豆久久久久久久| 久久蜜臀精品av| av电影天堂一区二区在线观看| 亚洲欧洲av在线| 欧美色精品天天在线观看视频| 亚洲6080在线| 日韩欧美一区二区久久婷婷| 国产一区二区精品久久91| 中文欧美字幕免费| 91电影在线观看| 麻豆成人av在线| 国产精品理伦片| 欧美日韩亚洲综合| 极品销魂美女一区二区三区| 国产欧美日韩三区| 色老综合老女人久久久| 免费人成在线不卡| 中文字幕欧美日韩一区|