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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tkmacdraw.c

?? linux系統下的音頻通信
?? 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一区二区在线观看| 2023国产精华国产精品| 日本三级亚洲精品| 欧美色倩网站大全免费| 国产精品免费视频一区| 国产美女久久久久| 久久综合色婷婷| 男男成人高潮片免费网站| 欧美日韩一二三| 亚洲综合精品自拍| 91亚洲国产成人精品一区二区三| 国产亚洲欧洲997久久综合 | 亚洲精品ww久久久久久p站| 国产精品一区二区久久精品爱涩| 91精品国产综合久久香蕉的特点| 亚洲在线观看免费| 欧美三级电影在线观看| 亚洲一区二区三区影院| 在线视频国产一区| 亚洲午夜影视影院在线观看| 91福利在线导航| 一区二区三区在线视频免费观看 | 久久99精品国产麻豆不卡| 欧美日本一区二区三区| 亚洲国产中文字幕在线视频综合| 欧美特级限制片免费在线观看| 夜色激情一区二区| 欧美性xxxxxxxx| 日精品一区二区| 日韩欧美一区二区三区在线| 麻豆91精品视频| 久久久青草青青国产亚洲免观| 国产麻豆成人精品| 欧美激情一区不卡| 99精品久久只有精品| 一区免费观看视频| 色婷婷亚洲一区二区三区| 亚洲国产精品久久人人爱| 欧美日本视频在线| 美女免费视频一区二区| 久久久精品影视| 99久久综合色| 亚洲一区成人在线| 精品久久久久久久久久久院品网 | 欧美日韩你懂的| 精品一区二区三区日韩| 国产欧美日韩三区| 91美女片黄在线观看| 日本欧美久久久久免费播放网| 精品91自产拍在线观看一区| 粉嫩高潮美女一区二区三区| 国产精品免费久久久久| 在线观看日产精品| 国内精品伊人久久久久影院对白| 国产喷白浆一区二区三区| 欧美性大战xxxxx久久久| 蜜臀av性久久久久蜜臀av麻豆| 国产目拍亚洲精品99久久精品| 在线精品亚洲一区二区不卡| 日韩av一级片| 中文字幕一区二区三区在线观看| 欧美三级日本三级少妇99| 国产一区二区视频在线| 五月激情六月综合| 国产精品久久久久影院亚瑟| 欧美美女一区二区| 成人的网站免费观看| 爽爽淫人综合网网站| 中文字幕第一区二区| 91麻豆精品国产| 一本久道久久综合中文字幕| 激情深爱一区二区| 五月激情六月综合| 亚洲精品高清视频在线观看| 久久香蕉国产线看观看99| 欧美福利一区二区| 91在线视频播放| 精品综合久久久久久8888| 一区二区三区高清不卡| 中文字幕第一页久久| 欧美电影免费观看高清完整版| 日本韩国欧美一区| 成人网在线播放| 久久91精品国产91久久小草| 亚洲v中文字幕| 一区二区三区加勒比av| 国产精品区一区二区三区| 日韩女优av电影| 在线视频你懂得一区| 99久久久精品| 国产·精品毛片| 激情综合五月婷婷| 日本vs亚洲vs韩国一区三区二区 | 亚洲图片欧美激情| 国产欧美一区在线| 久久精品日产第一区二区三区高清版 | 久久99热这里只有精品| 日韩电影免费在线| 亚洲国产综合91精品麻豆| 一区二区三区欧美在线观看| ●精品国产综合乱码久久久久| 国产精品情趣视频| 国产精品日韩精品欧美在线| 国产女人18毛片水真多成人如厕| 久久久久久毛片| 久久综合色综合88| 国产午夜精品理论片a级大结局| 久久影院视频免费| 久久午夜免费电影| 欧美极品美女视频| 中文字幕一区二区5566日韩| 日韩毛片高清在线播放| 亚洲卡通欧美制服中文| 亚洲精品福利视频网站| 亚洲午夜三级在线| 午夜精品一区在线观看| 久久国产精品第一页| 国产一区二区免费视频| 成人avav在线| 欧日韩精品视频| 制服视频三区第一页精品| 日韩欧美一卡二卡| 久久久久久久久久看片| 中文字幕欧美三区| 亚洲成人手机在线| 美国十次综合导航| 成人午夜私人影院| 欧美亚洲一区三区| 久久众筹精品私拍模特| 中文字幕巨乱亚洲| 亚洲线精品一区二区三区八戒| 天天操天天色综合| 国产精品综合久久| 91女神在线视频| 日韩欧美亚洲另类制服综合在线| 国产午夜精品久久久久久免费视| 亚洲视频在线观看三级| 爽好多水快深点欧美视频| 国产精品一区二区在线观看不卡| 99综合电影在线视频| 欧美日韩电影一区| 国产日本欧美一区二区| 亚洲一区在线电影| 国产精品亚洲午夜一区二区三区 | 99久久免费精品| 日韩一区二区三区在线| 国产精品麻豆欧美日韩ww| 日韩电影一区二区三区| 国产成人av电影在线播放| 欧美日高清视频| 亚洲色图制服诱惑| 久久国产视频网| 在线免费观看视频一区| 国产喂奶挤奶一区二区三区| 天天综合色天天综合| 91在线观看污| 久久―日本道色综合久久| 亚洲影院理伦片| 国产**成人网毛片九色 | 中文字幕一区二区三| 蜜臀va亚洲va欧美va天堂| 色综合久久88色综合天天免费| 欧美va亚洲va香蕉在线| 亚洲国产一二三| 色综合久久久久| 国产精品乱人伦一区二区| 精品一区二区三区视频| 国产精品视频第一区| 久久国产三级精品| 8x福利精品第一导航| 亚洲激情男女视频| 99re视频精品| 久久精品夜色噜噜亚洲a∨| 美女视频黄久久| 欧美一区二区三区影视| 亚洲v精品v日韩v欧美v专区 | 亚洲老妇xxxxxx| av在线一区二区| 中文字幕一区二区三区乱码在线 | 91精品国产欧美一区二区| 一区二区三区四区视频精品免费| av成人免费在线观看| 国产欧美精品一区二区色综合 | 国产69精品一区二区亚洲孕妇| 日韩精品中文字幕在线一区| 日日夜夜免费精品| 91精品国产色综合久久不卡蜜臀 | 亚洲一区在线观看视频| 日本道免费精品一区二区三区| 国产精品人人做人人爽人人添| 日本乱人伦aⅴ精品| 国产亚洲制服色| 成人免费高清在线观看|