oexBOOL CImage::Save( oexCSTR x_pFile, oexCSTR x_pType ) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; // Copy filename m_filename = x_pFile; // Get the file type DWORD type = GetFileType( ( oexCHECK_PTR( x_pType ) && *x_pType ) ? x_pType : x_pFile ); if ( (DWORD)-1 == type ) return oexFALSE; #if defined( OEX_WINCE ) // Load the file return pimg->Save( x_pFile, type ); #else // Load the file return pimg->Save( oexStrToMbPtr( x_pFile ), type ); #endif #endif }
oexBOOL CLog::OpenLogFile( oexCSTR x_pPath, oexCSTR x_pFile, oexCSTR x_pExtension ) {_STT(); CStr sFile; if ( oexCHECK_PTR( x_pPath ) && *x_pPath ) sFile = x_pPath; else sFile = oexGetModulePath(); if ( oexCHECK_PTR( x_pFile ) && *x_pFile ) sFile.BuildPath( x_pFile ); else sFile.BuildPath( oexGetModuleFileName().GetFileName() ); if ( oexCHECK_PTR( x_pExtension ) && *x_pExtension ) sFile << x_pExtension; else #if defined( OEX_WINCE ) sFile << oexT( ".debug.log.txt" ); #else sFile << oexT( ".debug.log" ); #endif return Open( sFile.Ptr() ); }
oexBOOL CImage::Decode( oexPBYTE x_buf, oexINT x_size, oexCSTR x_pType ) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; // Copy filename if ( oexCHECK_PTR( x_pType ) ) m_filename = x_pType; // Get the file type DWORD type = ( oexCHECK_PTR( x_pType ) && *x_pType ) ? GetFileType( x_pType ) : -1; if ( (DWORD)-1 == type ) return oexFALSE; // Decode the image if ( !pimg->Decode( x_buf, x_size, type ) ) return oexFALSE; GetRect(); return TRUE; #endif }
// Export classes static void SQBIND_Export_irrlicht( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; SQBIND_EXPORT( x_vm, CSqirrColor ); SQBIND_EXPORT( x_vm, CSqirrColorf ); SQBIND_EXPORT( x_vm, CSqirrVector3d ); SQBIND_EXPORT( x_vm, CSqirrVector2d ); SQBIND_EXPORT( x_vm, CSqirrVertexArray ); SQBIND_EXPORT( x_vm, CSqirrBoundingBox3d ); SQBIND_EXPORT( x_vm, CSqirrRect2d ); SQBIND_EXPORT( x_vm, CSqirrLine ); SQBIND_EXPORT( x_vm, CSqirrAnimator ); SQBIND_EXPORT( x_vm, CSqirrTexture ); SQBIND_EXPORT( x_vm, CSqirrFont ); SQBIND_EXPORT( x_vm, CSqirrNode ); SQBIND_EXPORT( x_vm, CSqirrCamera ); SQBIND_EXPORT( x_vm, CSqIrrlicht ); SQBIND_EXPORT( x_vm, CSqirrPhysics ); }
// Export classes static void SQBIND_Export_tinyxml( sqbind::VM x_vm ) { if ( !oexCHECK_PTR( x_vm ) ) return; CSqXml::Register( x_vm ); }
void *sq_vm_realloc( void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size ) {//_STT(); if ( oexCHECK_PTR( sqbind::g_SqAllocator.fnRealloc ) ) return sqbind::g_SqAllocator.fnRealloc( p, size ); return oex::CMem::Resize( p, size, oexLINE, oexTEXT( oexFILE ) ); }
// Export classes static void SQBIND_Export_gdchart( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; SQBIND_EXPORT( x_vm, CGdcChart ); }
// Export classes static void SQBIND_Export_mysql( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; SQBIND_EXPORT( x_vm, CSqMysql ); }
// Export classes static void SQBIND_Export_curl( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; CSqCurl::Register( x_vm ); }
CCircBuf::t_size CCircBuf::Write( oexCPVOID x_pvBuf, t_size x_uSize, oexUINT x_uEncode ) { // Sanity check if ( !oexCHECK_PTR( x_pvBuf ) || !x_uSize ) return 0; // Lock the buffer oexAutoLock ll( &m_lock ); if ( !ll.IsLocked() ) return 0; // Do we want to auto expand the buffer? if ( eWmGrow == m_nWriteMode ) { if ( !m_pBi ) Allocate( x_uSize ); else EnsureWriteSpace( x_uSize, m_pBi->uReadPtr, m_pBi->uWritePtr, m_uSize ); } // end if // Do we have a buffer? if ( !m_pBi ) return 0; // Attempt to actually write the data if ( !Write( x_pvBuf, x_uSize, &m_pBi->uWritePtr, x_uEncode ) ) return 0; OnWrite(); return x_uSize; }
oexINT CImage::GetFileType( oexCSTR x_pFile ) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return -1; #else // Sanity check if ( !oexCHECK_PTR( x_pFile ) ) return -1; oexINT type = -1; CStr sExt = CStr( x_pFile ).GetFileExtension(); if ( !sExt.Length() ) sExt = x_pFile; sExt.ToLower(); if ( 0 ); // Check for bitmap #if defined( CXIMAGE_SUPPORT_JPG ) && CXIMAGE_SUPPORT_JPG else if ( sExt == oexT( "jpg" ) || sExt == oexT( "jpeg" ) ) type = CXIMAGE_FORMAT_JPG; #endif #if defined( CXIMAGE_SUPPORT_BMP ) && CXIMAGE_SUPPORT_BMP else if ( sExt == oexT( "bmp" ) || sExt == oexT( "dib" ) ) type = CXIMAGE_FORMAT_BMP; #endif #if defined( CXIMAGE_SUPPORT_PNG ) && CXIMAGE_SUPPORT_PNG else if ( sExt == oexT( "png" ) ) type = CXIMAGE_FORMAT_PNG; #endif #if defined( CXIMAGE_SUPPORT_WMF ) && CXIMAGE_SUPPORT_WMF else if ( sExt == oexT( "wmf" ) ) type = CXIMAGE_FORMAT_WMF; else if ( sExt == oexT( "emf" ) ) type = CXIMAGE_FORMAT_WMF; #endif #if defined( CXIMAGE_SUPPORT_GIF ) && CXIMAGE_SUPPORT_GIF else if ( sExt == oexT( "gif" ) ) type = CXIMAGE_FORMAT_GIF; #endif //#if defined( CXIMAGE_SUPPORT_MNG ) && CXIMAGE_SUPPORT_MNG // else if ( sExt == oexT( "mng" ) ) type = CXIMAGE_FORMAT_MNG; //#endif #if defined( CXIMAGE_SUPPORT_ICO ) && CXIMAGE_SUPPORT_ICO else if ( sExt == oexT( "ico" ) ) type = CXIMAGE_FORMAT_ICO; #endif #if defined( CXIMAGE_SUPPORT_TIF ) && CXIMAGE_SUPPORT_TIF else if ( sExt == oexT( "tif" ) || sExt == oexT( "tiff" ) ) type = CXIMAGE_FORMAT_TIF; #endif #if defined( CXIMAGE_SUPPORT_TGA ) && CXIMAGE_SUPPORT_TGA else if ( sExt == oexT( "tga" ) ) type = CXIMAGE_FORMAT_TGA; #endif #if defined( CXIMAGE_SUPPORT_PCX ) && CXIMAGE_SUPPORT_PCX else if ( sExt == oexT( "pcx" ) ) type = CXIMAGE_FORMAT_PCX; #endif //#if defined( CXIMAGE_SUPPORT_JP2 ) && CXIMAGE_SUPPORT_JP2 // else if ( sExt == oexT( "jp2" ) ) type = CXIMAGE_FORMAT_JP2; //#endif return type; #endif }
// Export classes static void SQBIND_Export_portaudio( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; CPaInput::Register( x_vm ); CPaOutput::Register( x_vm ); }
// Export classes static void SQBIND_Export_test( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; // Register class instances CTestClass::Register( x_vm ); }
// Export classes static void SQBIND_Export_gsoap( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; // Register class instances CGSoapDrv::Register( x_vm ); }
// Export classes static void SQBIND_Export_freetype2( sqbind::VM x_vm ) {_STT(); if ( !oexCHECK_PTR( x_vm ) ) return; CFtLibrary::Register( x_vm ); CFtFace::Register( x_vm ); }
void sq_vm_free( void *p, SQUnsignedInteger size ) {//_STT(); if ( oexCHECK_PTR( sqbind::g_SqAllocator.fnFree ) ) { sqbind::g_SqAllocator.fnFree( p ); return; } // end if return oex::CMem::Delete( p ); }
oexBOOL CImage::Rotate(oexFLOAT x_angle, CImage *x_pDst) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; CCxCustomImg *pdst = oexNULL; if ( oexCHECK_PTR( x_pDst ) && oexCHECK_PTR( x_pDst->m_pimg ) ) pdst = (CCxCustomImg*)x_pDst->m_pimg; return pimg->Rotate( x_angle, pdst ); #endif }
oexINT CImage::Encode( oexPBYTE x_pBuf, oexINT x_nSize, oexCSTR x_pType ) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return 0; #else // Sanity checks if ( oexCHECK_PTR( x_pBuf ) || !x_nSize ) return 0; // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return 0; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; // Use filename if not supplied if ( !oexCHECK_PTR( x_pType ) ) x_pType = m_filename.Ptr(); // Get the file type DWORD type = GetFileType( x_pType ); if ( (DWORD)-1 == type ) return 0; // Wrap the memory pointer s_CxMemFile mf( x_pBuf, x_nSize ); // Encode the image if ( !pimg->Encode( &mf, type ) ) { mf.Detach(); return 0; } // Get the number of bytes encoded oexINT nEncoded = mf.Size(); // Detach from the buffer mf.Detach(); return nEncoded; #endif }
oexBOOL CImage::Crop(oexINT x_left, oexINT x_top, oexINT x_right, oexINT x_bottom, CImage *x_pDst) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; CCxCustomImg *pdst = oexNULL; if ( oexCHECK_PTR( x_pDst ) && oexCHECK_PTR( x_pDst->m_pimg ) ) pdst = (CCxCustomImg*)x_pDst->m_pimg; return pimg->Crop( x_left, x_top, x_right, x_bottom, pdst ); #endif }
void CImage::ReleaseEncodeMemory() {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return; #else // Hmmm.... not releasing this means we won't have to realloc // it all the time // m_mem.Destroy(); // Release memory buffer if ( oexCHECK_PTR( m_pimg ) && oexCHECK_PTR( m_pMem ) ) ((CCxCustomImg*)m_pimg)->FreeMemory( (void*)m_pMem ); m_uMemSize = 0; m_pMem = oexNULL; #endif }
oexBOOL CImage::Copy(CImage *pImg) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Ensure image to copy if ( !oexCHECK_PTR( pImg ) || !oexCHECK_PTR( pImg->m_pimg ) ) return oexFALSE; // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; // Copy the thing pimg->Copy( *( (CCxCustomImg*)pImg->m_pimg ) ); return IsValid(); #endif }
oexPVOID CImage::GetBits() {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexNULL; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexNULL; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->GetBits(); #endif }
oexBOOL CImage::Resample( oexSRect *x_pRect, oexINT x_fast) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Resample( cmn::RW( x_pRect ), cmn::RH( x_pRect ), x_fast ); #endif }
oexINT CImage::Histogram(oexLONG *x_red, oexLONG *x_green, oexLONG *x_blue, oexLONG *x_gray, oexLONG x_colorspace) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return 0; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return 0; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Histogram( x_red, x_green, x_blue, x_gray, x_colorspace ); #endif }
oexBOOL CImage::Dilate(oexINT x_Ksize) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Dilate( x_Ksize ); #endif }
oexBOOL CImage::Light(oexINT x_level, oexINT x_contrast) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Light( x_level, x_contrast ); #endif }
oexBOOL CImage::Colorize(oexINT x_hue, oexINT x_sat) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Colorize( (oexBYTE)x_hue, (oexBYTE)x_sat ); #endif }
oexBOOL CImage::Threshold(oexINT x_level) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->Threshold( (oexBYTE)x_level ); #endif }
oexBOOL CImage::ShiftRGB(oexINT x_r, oexINT x_g, oexINT x_b) {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return oexFALSE; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return oexFALSE; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return pimg->ShiftRGB( x_r, x_g, x_b ); #endif }
oexINT CImage::GetImageSize() {_STT(); #if !defined( OEX_ENABLE_XIMAGE ) return 0; #else // Get image object if ( !oexCHECK_PTR( m_pimg ) ) return 0; CCxCustomImg *pimg = (CCxCustomImg*)m_pimg; return ( pimg->GetEffWidth() * pimg->GetHeight() ); #endif }