ximalyr.cpp

来自「It s a tool designed to extract as much 」· C++ 代码 · 共 106 行

CPP
106
字号
// xImaLyr.cpp : Layers functions/* 21/04/2003 v1.00 - Davide Pizzolato - www.xdp.it * CxImage version 5.99c 17/Oct/2004 */#include "ximage.h"#if CXIMAGE_SUPPORT_LAYERS/////////////////////////////////////////////////////////////////////////////////** * If the object is an internal layer, GetParent return its parent in the hierarchy. */CxImage* CxImage::GetParent() const{	return info.pParent;}/////////////////////////////////////////////////////////////////////////////////** * Number of layers allocated directly by the object. */long CxImage::GetNumLayers() const{	return info.nNumLayers;}/////////////////////////////////////////////////////////////////////////////////** * Creates an empty layer. If position is less than 0, the new layer will be placed in the last position */bool CxImage::LayerCreate(long position){	if ( position < 0 || position > info.nNumLayers ) position = info.nNumLayers;	CxImage** ptmp = (CxImage**)malloc((info.nNumLayers + 1)*sizeof(CxImage**));	if (ptmp==0) return false;	int i=0;	for (int n=0; n<info.nNumLayers; n++){		if (position == n){			ptmp[n] = new CxImage();			i=1;		}		ptmp[n+i]=pLayers[n];	}	if (i==0) ptmp[info.nNumLayers] = new CxImage();	if (ptmp[position]){		ptmp[position]->info.pParent = this;	} else {		free(ptmp);		return false;	}	info.nNumLayers++;	if (pLayers) free(pLayers);	pLayers = ptmp;	return true;}/////////////////////////////////////////////////////////////////////////////////** * Deletes a layer. If position is less than 0, the last layer will be deleted */bool CxImage::LayerDelete(long position){	if ( position >= info.nNumLayers ) return false;	if ( position < 0) position = info.nNumLayers - 1;	CxImage** ptmp = (CxImage**)malloc((info.nNumLayers - 1)*sizeof(CxImage**));	if (ptmp==0) return false;	int i=0;	for (int n=0; n<(info.nNumLayers - 1); n++){		if (position == n){			delete pLayers[n];			i=1;		}		ptmp[n]=pLayers[n+i];	}	if (i==0) delete pLayers[info.nNumLayers - 1];	info.nNumLayers--;	if (pLayers) free(pLayers);	pLayers = ptmp;	return true;}////////////////////////////////////////////////////////////////////////////////void CxImage::LayerDeleteAll(){	if (pLayers) { 		for(long n=0; n<info.nNumLayers;n++){ delete pLayers[n]; }		free(pLayers); pLayers=0;	}}/////////////////////////////////////////////////////////////////////////////////** * Returns a pointer to a layer. If position is less than 0, the last layer will be returned */CxImage* CxImage::GetLayer(long position){	if ( position >= info.nNumLayers ) return 0;	if ( position < 0) position = info.nNumLayers - 1;	return pLayers[position];}////////////////////////////////////////////////////////////////////////////////#endif //CXIMAGE_SUPPORT_LAYERS

⌨️ 快捷键说明

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