Example #1
0
cl_context createClContextFromPlatform(cl_platform_id platformId, cl_device_id* outputClDeviceId)
{
    // Only allow GPU devices to be used
    // If your machine has integrated graphics or something, you might have to change this
    // (You can tell if it spits at you "Unable to find suitable OpenCL device")
    const cl_device_type clDeviceType = CL_DEVICE_TYPE_GPU;

    // Get cl_device_id count and then list
    cl_uint openclDeviceCount = 0;
    if (PrintErr(clGetDeviceIDs(platformId, clDeviceType, 0, NULL, &openclDeviceCount)))
        return NULL;

    cl_device_id deviceIds[openclDeviceCount];
    if (PrintErr(clGetDeviceIDs(platformId, clDeviceType, openclDeviceCount, deviceIds, NULL)))
        return NULL;

    for (cl_uint device = 0; device < openclDeviceCount; device++)
    {
        cl_device_id deviceId = deviceIds[device];
        cl_context context = createClContextFromDevice(platformId, deviceId);
        if (context)
        {
            *outputClDeviceId = deviceId;
            return context;
        }
    }
    return NULL;
}
Example #2
0
//! 删除个人房屋信息
void CRsMail::DeleteMail(const CGUID& guid, _ConnectionPtr& cn)
{
	char sql[500] = "";
	try
	{
		char szGUID[128];
		guid.tostring(szGUID);

		sprintf(sql, "DELETE FROM CSL_MAIL WHERE PlayerID='%s'", szGUID);
		// 先删除该个人房屋的成员
		if(!ExecuteCn(sql, cn))
		{
			PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELDUPRGNPROPERTYERR));
			return;
		}

		// 删除房间内物品
		DeleteMailGoods(guid);
		return;
	}
	catch (_com_error &e)
	{
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return;
	}

	return;
}
Example #3
0
// Upload memory to the GPU
int uplMem(struct Interop* interop, int key, size_t memSize, float* data)
{
    size_t gpuSize;
    cl_mem gpu = getMem(*interop, key, &gpuSize);
    if (gpu)
    {
        // We just assume people know what they're doing if it's a screenbuffer.
        // This is probably a bad decision.
        if (gpuSize != 0 && gpuSize != memSize)
        {
            printf("Cannot upload memory: GPU was of size %lu while data was %lu\n",
                    gpuSize, memSize);
            return -1;
        }
    }
    else
    {
        printf("Allocating memory due to uplMem unknown buffer %d of size %lu\n",
                key, memSize);
        if (memSize == 0)
        {
            puts("Cannot allocate a zero-sized gpu array");
            return -1;
        }
        if (PrintErr(allocMem(interop, key, memSize, 0)))
            return -1;
        gpu = getMem(*interop, key, &gpuSize);
    }
    if (PrintErr(clEnqueueWriteBuffer(interop->command_queue, gpu, 1, 0, memSize, data,
            0, NULL, NULL)))
        return -1;
    return 0;
}
Example #4
0
//! 删除个人房屋信息
void CRsDupRgn::DeleteDupRgn(CDBDupRgn* dupRgn)
{
	_RecordsetPtr rs;
	char sql[1024] = "";
	try
	{
		char szGUID[128];
		dupRgn->GetExID().tostring(szGUID);

		sprintf(sql, "DELETE FROM CSL_DUPRGN_PROPERTY WHERE guid='%s'", szGUID);
		// 先删除该个人房屋的成员
		if(!ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()))
		{
			PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELDUPRGNPROPERTYERR));
			return;
		}

		// 删除房间内物品
		DeleteDupRgnObj(dupRgn->GetExID());
		return;
	}
	catch (_com_error &e)
	{
		ReleaseRs(rs);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return;
	}

	return;
}
Example #5
0
File: cr.c Project: armornick/CocoR
static void PrintListing(void)
/* Print a source listing with error messages */
{ struct ErrDesc *nextErr;
  int lnr, errC;
  long srcPos;
  char line[255];

  fprintf(lst, "Listing:\n\n");
  srcPos = 0; nextErr = FirstErr;
  srcPos = GetLine(srcPos, line); lnr = 1; errC = 0;
  while (srcPos != -1) {
    fprintf(lst, "%5d  %s\n", lnr, line);
    while (nextErr != NULL && nextErr->line == lnr) {
      PrintErr(nextErr->nr, nextErr->col); errC++;
      nextErr = nextErr->next;
    }
    srcPos = GetLine(srcPos, line); lnr++;
  }
  if (nextErr != NULL) {
    fprintf(lst, "%5d\n", lnr);
    while (nextErr != NULL) {
      PrintErr(nextErr->nr, nextErr->col); errC++;
      nextErr = nextErr->next;
    }
  }
  fprintf(lst, "\n\n%5d syntax errors\n", errC);
}
Example #6
0
void VM::PrintMethodInitException(MethodInitException &e)
{
	FILE *err = stderr;

	fwprintf(err, L"An error occurred while initializing the method '");

	MethodOverload *method = e.GetMethod();
	if (method->declType)
		PrintInternal(err, L"%ls.", method->declType->fullName);
	PrintErr(method->group->name);

	PrintInternal(err, L"' from module %ls: ", method->group->declModule->GetName());
	fwprintf(err, CSTR L"\n", e.what());

	switch (e.GetFailureKind())
	{
	case MethodInitException::INCONSISTENT_STACK:
	case MethodInitException::INVALID_BRANCH_OFFSET:
	case MethodInitException::INSUFFICIENT_STACK_HEIGHT:
	case MethodInitException::STACK_HAS_REFS:
		fwprintf(err, L"Instruction index: %d\n", e.GetInstructionIndex());
		break;
	case MethodInitException::INACCESSIBLE_MEMBER:
	case MethodInitException::FIELD_STATIC_MISMATCH:
		fwprintf(err, L"Member: ");
		{
			Member *member = e.GetMember();
			if (member->declType)
				PrintInternal(err, L"%ls.", member->declType->fullName);
			PrintInternal(err, L"%ls\n", member->name);
		}
		break;
	case MethodInitException::UNRESOLVED_TOKEN:
		fwprintf(err, L"Token: %08X\n", e.GetToken());
		break;
	case MethodInitException::NO_MATCHING_OVERLOAD:
		fwprintf(err, L"Method: '");
		{
			Method *method = e.GetMethodGroup();
			if (method->declType)
				PrintInternal(err, L"%ls.", method->declType->fullName);
			PrintErr(method->name);
			PrintInternal(err, L"' from module %ls\n", method->declModule->GetName());
		}
		fwprintf(err, L"Argument count: %u\n", e.GetArgumentCount());
		break;
	case MethodInitException::INACCESSIBLE_TYPE:
	case MethodInitException::TYPE_NOT_CONSTRUCTIBLE:
		PrintInternal(err, L"Type: '%ls' ", e.GetType()->fullName);
		PrintInternal(err, L"from module %ls\n", e.GetType()->module->GetName());
		break;
	}
}
Example #7
0
bool CRsSetup::SavePlayerID(_ConnectionPtr& cn)
{
	// 存盘线程传过来的连接不存在

	bool IsLocalConn = false;
	/*if(cn == NULL) 
	{
		TESTHR(CreateCn(cn));
		TESTHR(OpenCn(cn));
		//	PrintErr("存盘线程传过来的连接不存在");
		//	return false;
		IsLocalConn = true;
	}*/

	if(GetGame()->GetDBEntityManager()->GetDBSetupMap().size())
	{
		CGUID id = (GetGame()->GetDBEntityManager()->GetDBSetupMap().begin())->second->GetPlayerID();
		char sql[512];
		char szid[128];
		id.tostring(szid);
		sprintf(sql, "UPDATE csl_setup SET playerID='%s'", szid);
		if( !ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()) )
		{
//			if(IsLocalConn)
				//ReleaseCn(cn);
			PrintErr("save playerid error");
			return false;
		}
	}
	else
	{
		CDBSetup* s = new CDBSetup;
		GetGame()->GetDBEntityManager()->AddOneDBSetup(s);
		char sql[512];
		sprintf(sql, "UPDATE csl_setup SET playerID=%d", s->GetPlayerID());
		if( !ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()) )
		{
//			if(IsLocalConn)
				//ReleaseCn(cn);
			PrintErr("save playerid error");
			return false;
		}
	}

//	if(IsLocalConn)
		//ReleaseCn(cn);
	return true;
}
Example #8
0
//! 删除个人房屋内的物品信息
void    CRsDupRgn::DeleteDupRgnObj(const CGUID& guid)
{
	_RecordsetPtr rs;
	char sql[500] = "";
	try
	{
		TESTHR(CreateRs(rs));

		char szGUID[128];
		guid.tostring(szGUID);

		sprintf(sql, "DELETE FROM CSL_DUPRGN_GOODS WHERE DupRgnGUID='%s'", szGUID);
		// 先删除该个人房屋的成员
		TESTHR(OpenRs(sql, rs, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()));

		ReleaseRs(rs);
		return;
	}
	catch (_com_error &e)
	{
		ReleaseRs(rs);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return;
	}

	return;
}
Example #9
0
void printDeviceIdName(cl_device_id device)
{
    size_t nameSize = 0;
    if (PrintErr(clGetDeviceInfo(device, CL_DEVICE_NAME, 0, NULL, &nameSize)))
    {
        puts("Ignoring.");
        return;
    }
    char name[nameSize];
    if (PrintErr(clGetDeviceInfo(device, CL_DEVICE_NAME, nameSize, name, NULL)))
    {
        puts("Ignorning.");
        return;
    }
    printf("Using device %s\n", name);
}
Example #10
0
bool CRsMail::DeletePlayerMailsGoods(set<CGUID>& mailSet, _ConnectionPtr& cn)
{
	char* sql = new char[256*mailSet.size()];
	sprintf(sql, "DELETE FROM CSL_MAIL_GOODS WHERE guid='");
	try
	{
		set<CGUID>::iterator itr = mailSet.begin();
		for(; itr != mailSet.end(); itr++)
		{
			char szGUID[128];
			(*itr).tostring(szGUID);
			strcat(sql, szGUID);
			strcat(sql, "' OR '");
		}

		long sqlLen = strlen(sql);
		sql[sqlLen-4] = '\0';
		// 先删除该个人房屋的成员
		TESTHR(ExecuteCn(sql, cn));
		SAFE_DELETE_ARRAY(sql);
		return true;
	}
	catch (_com_error &e)
	{
		SAFE_DELETE_ARRAY(sql);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return false;
	}

	return false;
}
Example #11
0
//--------------------------------------------------------------------------------
//  Function:   
//  Parameters: 
//      
//  Return:     
//
//  Purpose:    
//  [2004/12/24]    
//--------------------------------------------------------------------------------
bool CRsLogInfo::AccountEnterLog(LPCSTR szAccount, DWORD dwIP)
{
	// 无帐户
	if(!szAccount) return false;
	char sql[512];
	char szAccountEnterTime[20];
	char szIP[16];
	sprintf(szIP, "%d.%d.%d.%d", LOBYTE(LOWORD(dwIP)), HIBYTE(LOWORD(dwIP)), LOBYTE(HIWORD(dwIP)), HIBYTE(HIWORD(dwIP)));
	
	_ConnectionPtr cn;
	GetSystemTimeAsString(szAccountEnterTime);

	if(!CreateCn(cn)) return false;
	if(!OpenCn(cn)) return false;

	sprintf(sql,"INSERT INTO LogInfo(Account,AccountEnterTime,IP) VALUES('%s','%s','%s')", 
		szAccount,szAccountEnterTime,szIP);
	if(!ExecuteCn(sql, cn/*m_Connection*/)) 
	{
		ReleaseCn(cn);
		PrintErr("日志:写入帐户登录错");
		return false;
	}
	ReleaseCn(cn);
	return true;
}
Example #12
0
void printDeviceVersion(cl_device_id device)
{
    size_t nameSize = 0;
    if (PrintErr(clGetDeviceInfo(device, CL_DEVICE_VERSION, 0, NULL, &nameSize)))
    {
        puts("Ignoring.");
        return;
    }
    char name[nameSize];
    if (PrintErr(clGetDeviceInfo(device, CL_DEVICE_VERSION, nameSize, name, NULL)))
    {
        puts("Ignorning.");
        return;
    }
    printf("Device version %s\n", name);
}
Example #13
0
static bool init(HINSTANCE hInst)
{
	bool bSuccess = false;
	
	//add dll ref!
	++RefCount;
	PRINT("[%s]Add RefCount , Now RefCount is %d\n",\
		__func__,RefCount);
	
	if(!FreeSys(hInst))
	{
		PRINT("[%s]err : FreeSys Failed!\n",__func__);
		goto QUIT;
	}

	dllext_init();
	bSuccess = true;
QUIT:
	if(!bSuccess)
	{
		PRINT("[%s]err : init failed!\n",__func__);
		PrintErr();
	}
	return bSuccess;
}
Example #14
0
//--------------------------------------------------------------------------------
//  Function:   
//  Parameters: 
//      
//  Return:     
//
//  Purpose:    
//  [2004/12/24]    
//--------------------------------------------------------------------------------
DWORD CRsLogInfo::GetLogInfoIDForUpdate(LPCSTR szAccount)
{
	if(!szAccount) return -1;
	char sql[512];
	_ConnectionPtr cn;
	_RecordsetPtr rs;
	DWORD dwLogInfoID = -1;

	try
	{
		CreateCn(cn);
		CreateRs(rs);

		OpenCn(cn);
		sprintf(sql,"SELECT TOP 1 LogInfoID FROM logInfo WHERE (Account = '%s') ORDER BY AccountEnterTime DESC", szAccount);
		OpenRs(sql, rs, cn/*m_Connection*/);

		if(!rs->GetadoEOF()) dwLogInfoID = rs->GetCollect("logInfoID");

		ReleaseRs(rs);
		ReleaseCn(cn);
		return dwLogInfoID;
	}
	catch(_com_error &e)
	{
		ReleaseRs(rs);
		ReleaseCn(cn);
		PrintErr("日志:获取日志信息ID错", e);
		return -1;
	}
}
Example #15
0
bool CRsSetup::SaveLeaveWorldID(_ConnectionPtr& cn)
{
	bool IsLocalConn = false;
	// 存盘线程传过来的连接不存在
/*	if(cn == NULL) 
	{
		TESTHR(CreateCn(cn));
		TESTHR(OpenCn(cn));
		//	PrintErr("存盘线程传过来的连接不存在");
		//	return false;
		IsLocalConn = true;
	}*/

	CDBEntityManager::DBSetupMapItr itr = GetGame()->GetDBEntityManager()->GetDBSetupMap().begin();
	if(itr != GetGame()->GetDBEntityManager()->GetDBSetupMap().end())
	{
		char sql[512];
		sprintf(sql, "UPDATE csl_setup SET LeaveWordID=%d", itr->second->GetLeaveWordID());
		if( !ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()) )
		{
	//		if(IsLocalConn)
				//ReleaseCn(cn);
			PrintErr("save LeaveWordID error");
			return false;
		}
	}
	else
	{
		CGUID guid;
		CGUID::CreateGUID(guid);
		CDBSetup* s = new CDBSetup(guid);
		GetGame()->GetDBEntityManager()->AddOneDBSetup(s);
		char sql[512];
		sprintf(sql, "UPDATE csl_setup SET LeaveWordID=%d", s->GetLeaveWordID());
		if( !ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()) )
		{
	//		if(IsLocalConn)
				//ReleaseCn(cn);
			PrintErr("save LeaveWordID error");
			return false;
		}
	}
	//if(IsLocalConn)
		//ReleaseCn(cn);
	return true;
}
Example #16
0
int dlrawbuffer_callback(float* data, long bufferSize)
{
    if (PrintErr(saveRaw(data, bufferSize)))
    {
        puts("Ignoring raw write error.");
    }
    return 0;
}
Example #17
0
//! 删除邮件信息
DB_OPERATION_RESULT_TYPE CRsMail::DeleteMails(CDBMailGroup* goodsGroup, _ConnectionPtr& cn)
{
	_RecordsetPtr rs;
	char* sql = new char[1024* (long)goodsGroup->GetMailGroupSet().size()];
	try
	{
		char szGUID[128];

		sprintf(sql, "DELETE FROM CSL_MAIL WHERE guid='");
		set<CDBMail*>::iterator itr = goodsGroup->GetMailGroupSet().begin();
		for(; itr != goodsGroup->GetMailGroupSet().end(); itr++)
		{
			(*itr)->GetExID().tostring(szGUID);
			strcat(sql, szGUID);
			strcat(sql, "'");
			strcat(sql, " OR guid='");
			// 删除房间内物品
			DeleteMailGoods((*itr)->GetExID());
		}

		long sqlLen = strlen(sql);
		sql[sqlLen-10] = '\0';

		// 先删除该个人房屋的成员
		if(!ExecuteCn(sql, cn))
		{
			SAFE_DELETE_ARRAY(sql);
			PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELDUPRGNPROPERTYERR));
			return DB_OPER_RESULT_ERROR;
		}
		
		SAFE_DELETE_ARRAY(sql);
		return DB_OPER_RESULT_OK;
	}
	catch (_com_error &e)
	{
		SAFE_DELETE_ARRAY(sql);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return DB_OPER_RESULT_ERROR;
	}

	SAFE_DELETE_ARRAY(sql);
	return DB_OPER_RESULT_ERROR;
}
Example #18
0
cl_context createClContextFromNothing(cl_device_id* outputClDeviceId)
{
    cl_uint openclPlatformCount = 0;
    if (PrintErr(clGetPlatformIDs(0, NULL, &openclPlatformCount)))
        return NULL;

    cl_platform_id platformIds[openclPlatformCount];
    if (PrintErr(clGetPlatformIDs(openclPlatformCount, platformIds, NULL)))
        return NULL;

    for (cl_uint platform = 0; platform < openclPlatformCount; platform++)
    {
        cl_platform_id platformId = platformIds[platform];
        cl_context context = createClContextFromPlatform(platformId, outputClDeviceId);
        if (context)
            return context;
    }
    return NULL;
}
Example #19
0
DB_OPERATION_RESULT_TYPE CRsMail::DeletePlayerMails(const CGUID& playerID, _ConnectionPtr& cn)
{
	_RecordsetPtr rs;
	char sql[1024] = "";
	try
	{
		set<CGUID> guidSet;
		char szGUID[128];
		playerID.tostring(szGUID);

		sprintf(sql, "SELECT * FROM CSL_MAIL WHERE PlayerID='%s'", szGUID);
		TESTHR(CreateRs(rs));
		TESTHR(OpenRs(sql, rs, cn, adOpenForwardOnly, adLockOptimistic));
		rs->MoveFirst();
		while(!rs->GetadoEOF())
		{
			CGUID tGUID((_bstr_t)rs->GetCollect("guid"));
			guidSet.insert(tGUID);
			rs->MoveNext();
		}
		ReleaseRs(rs);
		// 删除房间内物品
		DeletePlayerMailsGoods(guidSet, cn);

		sprintf(sql, "DELETE FROM CSL_MAIL WHERE PlayerID='%s'", szGUID);
		// 先删除该个人房屋的成员
		if(!ExecuteCn(sql, cn))
		{
			PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELDUPRGNPROPERTYERR));
			return DB_OPER_RESULT_ERROR;
		}

		return DB_OPER_RESULT_OK;
	}
	catch (_com_error &e)
	{
		ReleaseRs(rs);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return DB_OPER_RESULT_ERROR;
	}

	return DB_OPER_RESULT_ERROR;
}
Example #20
0
DLLEXP bool StopSvr(PSvrHnds pSH)
{
	SERVICE_STATUS SvrSta;
	if(!ControlService(pSH->hSVR,SERVICE_CONTROL_STOP,&SvrSta))
	{
		PRINT("[%s]err : Stop Svr Failed!\n",__func__);
		PrintErr();
		return false;
	}
	return true;
}
Example #21
0
// GS查询指定玩家的个人房屋副本GUID
void	CRsDupRgn::QuestPHGuidByPlayerID(const char* playerName, CGUID& retPHGUID)
{
	_RecordsetPtr rs, rs1;
	char sql[500] = "";
	try
	{
		TESTHR(CreateRs(rs));
		TESTHR(CreateRs(rs1));

		// 先查找Player GUID
		sprintf(sql, "SELECT * FROM baseproperty WHERE Name='%s'", playerName);
		TESTHR(OpenRs(sql, rs, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()));

		char* szGUID = NULL;
		if(!rs->GetadoEOF())
		{
			szGUID = (_bstr_t)rs->GetCollect("guid");
		}
		ReleaseRs(rs);
		sprintf(sql, "SELECT * FROM CSL_DUPRGN_PROPERTY WHERE OwnerGUID='%s'", szGUID);
		TESTHR(OpenRs(sql, rs, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()));

		while(!rs->GetadoEOF())
		{
			// GUID
			retPHGUID = CGUID((_bstr_t)rs->GetCollect("guid"));
		}
		ReleaseRs(rs1);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_QUESTRGNGUIDOK));
		return;
	}
	catch (_com_error &e)
	{
		ReleaseRs(rs);
		ReleaseRs(rs1);
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_QUESTRGNGUIDFAIL), e);
		return;
	}

	return;
}
Example #22
0
// Allocates a cl_mem object and calls addMem()
int allocMem(struct Interop* interop, int key, size_t memSize, size_t screenSizeBytes)
{
    cl_int openclError;
    cl_mem memory = clCreateBuffer(interop->context, CL_MEM_READ_WRITE,
            memSize == 0 ? screenSizeBytes : memSize, NULL, &openclError);
    if (PrintErr(openclError))
    {
        puts("  Was from clCreateBuffer()");
        return -1;
    }
    return addMem(interop, key, memory, memSize);
}
Example #23
0
void    MsgPrintErr( uint msg, ...  ) {
//=====================================

// Display message to the error and listing file.

    char        msgbuff[LFERR_BUFF_SIZE+1];
    va_list     args;

    va_start( args, msg );
    __BldErrMsg( msg, msgbuff, args );
    va_end( args );
    PrintErr( msgbuff );
}
Example #24
0
// Creates an Interop struct
int newInterop(struct Interop* result)
{
    result->context = getClContext(&result->deviceId);
    result->clMems = NULL;
    memset(&result->clContext, 0, sizeof(struct ClContext));

    if (!result->context)
    {
        puts("No OpenCL devices found");
        return -1;
    }

    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.f, 1.f, 0.f, 1.f, -1.f, 1.f);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glGenTextures(1, &result->glTexture);
    glGenBuffers(1, &result->glBuffer);

    glEnable(GL_TEXTURE_2D);

    glBindTexture(GL_TEXTURE_2D, result->glTexture);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    if (PrintErr((int)glGetError()))
        return -1;

    cl_int openclError;
    result->command_queue = clCreateCommandQueue(result->context,
            result->deviceId, 0, &openclError);
    if (PrintErr(openclError))
        return -1;

    return 0;
}
Example #25
0
// Download memory from the GPU
float* dlMem(struct Interop interop, int key, size_t* memSize, size_t screenSizeBytes)
{
    cl_mem clmem = getMem(interop, key, memSize);
    if (!clmem)
        return NULL;
    if (*memSize == 0)
        *memSize = screenSizeBytes;
    float* data = malloc_s(*memSize);
    if (PrintErr(clEnqueueReadBuffer(interop.command_queue, clmem, 1, 0,
            *memSize, data, 0, NULL, NULL)))
    {
        free(data);
        return NULL;
    }
    return data;
}
Example #26
0
//存Buffer
bool CRsDupRgn::SaveBufferField(CBaseDBEntity *pGoods, const char* szFiledName, _RecordsetPtr &rs)
{
	if(pGoods == NULL)	return false;
	if(szFiledName == NULL) return false;

	VARIANT varBLOB;
	SAFEARRAY* psa;

	CEntityProperty* ep = pGoods->GetDataEntityManager().GetEntityProperty(string(szFiledName));
	if(NULL == ep) return false;

	BYTE* buffer = NULL;
	long dataSize = ep->GetBufSize(0);
	if(dataSize)
	{
		buffer = new BYTE[dataSize];
		ep->GetBufAttr(0, (void*)buffer, dataSize);
		
		long lSize=(long)dataSize;
		SAFEARRAYBOUND rgsabound[1];
		rgsabound[0].lLbound=0;
		rgsabound[0].cElements=lSize;
		psa=SafeArrayCreate(VT_UI1,1,rgsabound);

		for(long i=0;i<lSize;i++)
		{
			SafeArrayPutElement(psa,&i,&buffer[i]);
		}
		varBLOB.vt=VT_ARRAY|VT_UI1;
		varBLOB.parray=psa;

		try
		{
			rs->GetFields()->GetItem(szFiledName)->AppendChunk(varBLOB);
		}
		catch(_com_error e)
		{
			PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN, STR_DBS_DUPRGN_SAVERGNOBJFAIL), e);
			SAFE_DELETE_ARRAY(buffer);
			return false;
		}
		SafeArrayDestroy(psa);
	}
	SAFE_DELETE_ARRAY(buffer);
	return true;
}
Example #27
0
//--------------------------------------------------------------------------------
//  Function:   
//  Parameters: 
//      
//  Return:     
//
//  Purpose:    
//  [2004/12/24]    
//--------------------------------------------------------------------------------
bool CRsLogInfo::RoleEnterLog(LPCSTR szAccount, LPCSTR szRoleName, BYTE btRoleLevel, BYTE btWorldNumber)
{
	char sql[512];
	char szCurrentTime[20];
	_ConnectionPtr cn;
	GetSystemTimeAsString(szCurrentTime);

	if(!CreateCn(cn)) return false;
	if(!OpenCn(cn)) return false;
	sprintf(sql,"UPDATE LogInfo SET RoleEnterTime='%s', RoleName='%s', RoleLevel='%d', WorldNumber='%d' \
				 WHERE LogInfoID='%d'", szCurrentTime, szRoleName, btRoleLevel, btWorldNumber, GetLogInfoIDForUpdate(szAccount));
	if(!ExecuteCn(sql, cn/*m_Connection*/))
	{
		ReleaseCn(cn);
		PrintErr("日志:写人角色登录错");
		return false;
	}
	ReleaseCn(cn);
	return true;
}
Example #28
0
//! 删除个人房屋内的物品信息
void    CRsMail::DeleteMailGoods(const CGUID& guid)
{
	char sql[500] = "";
	try
	{
		char szGUID[128];
		guid.tostring(szGUID);
		sprintf(sql, "DELETE FROM CSL_MAIL_GOODS WHERE MailID='%s'", szGUID);
		// 先删除该个人房屋的成员
		TESTHR(ExecuteCn(sql, GetGame()->GetDBEntityManager()->GetAccessThread()->GetConnPtr()));
		return;
	}
	catch (_com_error &e)
	{
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		return;
	}

	return;
}
Example #29
0
//! 读取玩家的所有邮件信息
bool CRsMail::LoadPlayerMails(const CGUID& playerID, CDBMailGroup* mailGroup, _ConnectionPtr& cn)
{
	if(!mailGroup) return true;

	mailGroup->Clear();

	mailGroup->SetOwnerGUID(playerID);

	_RecordsetPtr rs;
	char sql[500] = "";
	try
	{
		TESTHR(CreateRs(rs));

		char szGUID[128];
		playerID.tostring(szGUID);

		sprintf(sql, "select * FROM CSL_MAIL WHERE PlayerID='%s'", szGUID);
		// 先删除该个人房屋的成员
		TESTHR(OpenRs(sql, rs, cn));

		while(!rs->GetadoEOF())
		{
			CGUID tGuid((_bstr_t)rs->GetCollect("guid"));
			CDBMail* mail = new CDBMail(tGuid);
			LoadMail(mail, rs, cn);
			mailGroup->GetMailGroupSet().insert(mail);
			rs->MoveNext();
		}
		ReleaseRs(rs);
		return true;
	}
	catch (_com_error &e)
	{
		PrintErr(CStringReading::LoadString(IDS_DBS_RSDUPRGN,STR_DBS_DUPRGN_DELRGNOBJFAIL), e);
		ReleaseRs(rs);
		return false;
	}
	ReleaseRs(rs);
	return false;
}
Example #30
0
bool CRsLogInfo::LeaveLog(LPCSTR szAccount)
{
	char sql[512];
	char szCurrentTime[20];
	_ConnectionPtr cn;
	GetSystemTimeAsString(szCurrentTime);

	if(!CreateCn(cn)) return false;
	if(!OpenCn(cn)) return false;

	sprintf(sql,"UPDATE logInfo SET RoleLeaveTime = '%s', AccountLeaveTime = '%s' WHERE (LogInfoID = '%d')",
		szCurrentTime,szCurrentTime,GetLogInfoIDForUpdate(szAccount));
	if(!ExecuteCn(sql, cn/*m_Connection*/)) 
	{
		ReleaseCn(cn);
		PrintErr("日志:写人帐户和角色登出错");
		return false;
	}
	ReleaseCn(cn);
	return true;
}