📄 reg16.c
字号:
/*************************************************************************/
/* */
/* Copyright (c) 1997 - 1999 Accelerated Technology, Inc. */
/* */
/* PROPRIETARY RIGHTS of Accelerated Technology are involved in the */
/* subject matter of this material. All manufacturing, reproduction, */
/* use, and sales rights pertaining to this subject matter are governed */
/* by the license agreement. The recipient of this software implicitly */
/* accepts the terms of the license. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* REG16.c 1.9 */
/* */
/* COMPONENT */
/* */
/* All */
/* */
/* DESCRIPTION */
/* */
/* This file contains the DupRegion function. */
/* */
/* AUTHOR */
/* */
/* Giac Dinh, Accelerated Technology, Inc. */
/* */
/* DATA STRUCTURES */
/* */
/* None */
/* */
/* FUNCTIONS */
/* */
/* None */
/* */
/* DEPENDENCIES */
/* */
/* None */
/* */
/* HISTORY */
/* */
/* NAME DATE REMARKS */
/* */
/* BobB 8/20/98 Corrected data copy to new region */
/* */
/*************************************************************************/
#include "meta_wnd.h"
#include "metconst.h" /* MetaWINDOW Constant & Stucture Definitions */
#include "metports.h" /* MetaWINDOW Port & Bitmap Definitions */
#include "grafdata.h"
#include "metmacs3.h"
/* Function DupRegion duplicates an existing region structure, allocating new memory
for the duplicate region. This memory must be freed by the user. */
region *DupRegion( region *argRegion )
{
void *GrafAlloc(int memSize);
region *regPtr;
short grafErrValue;
/* BobB 8/20/98 - added the following line for data copy */
byte *regDataIn, *regDataOut;
int i;
/* Get used size of source region and allocate it */
regPtr = (region *) GrafAlloc(argRegion->rgnSize);
/* Check for null location */
if(regPtr == 0)
{
grafErrValue = (short) (c_DupRegio + c_OutofMem);
nuGrafErr(grafErrValue);
return(regPtr);
}
/* Copy over region data */
/* BobB 8/20/98 - corrected the following line to copy all the data
*regPtr = *argRegion; */
regDataIn = (byte *) argRegion;
regDataOut = (byte *) regPtr;
for (i = 0; i < argRegion->rgnSize; i++)
{
*regDataOut = *regDataIn;
regDataOut++;
regDataIn++;
}
regPtr->rgnAlloc = regPtr->rgnSize;
/* Fix up header pointer */
regPtr->rgnList = (rect *) ((long) regPtr + (long) argRegion->rgnList -
(long) argRegion);
regPtr->rgnListEnd = (rect *) ((long) regPtr + (long) argRegion->rgnListEnd -
(long) argRegion);
return(regPtr);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -