本文整理汇总了C++中GetRecord函数的典型用法代码示例。如果您正苦于以下问题:C++ GetRecord函数的具体用法?C++ GetRecord怎么用?C++ GetRecord使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetRecord函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetRecord
VkResult WrappedVulkan::vkBindBufferMemory(
VkDevice device,
VkBuffer buffer,
VkDeviceMemory mem,
VkDeviceSize memOffset)
{
VkResourceRecord *record = GetRecord(buffer);
if(m_State >= WRITING)
{
Chunk *chunk = NULL;
{
CACHE_THREAD_SERIALISER();
SCOPED_SERIALISE_CONTEXT(BIND_BUFFER_MEM);
Serialise_vkBindBufferMemory(localSerialiser, device, buffer, mem, memOffset);
chunk = scope.Get();
}
// memory object bindings are immutable and must happen before creation or use,
// so this can always go into the record, even if a resource is created and bound
// to memory mid-frame
record->AddChunk(chunk);
record->AddParent(GetRecord(mem));
record->baseResource = GetResID(mem);
}
return ObjDisp(device)->BindBufferMemory(Unwrap(device), Unwrap(buffer), Unwrap(mem), memOffset);
}
示例2: GetFindThDic
tBOOL GetFindThDic(tCHAR *szStr, RECORD *lpRetRec)
{
THSTR_FORMAT ThStr;
tINT nPos, i;
STR_FORMAT Str;
if (bOpenIndexThDic == FALSE) return FALSE;
if (strlen(szStr) >= MAX_THSTR) return FALSE; // exception
strcpy(ThStr.szStr, szStr);
nPos = FindRecord(&RecThStr, &ThStr, TRUE, (CompProcP)CompRecThStr);
if (nPos == -1) return FALSE;
GetRecord(&RecThStr, nPos, &ThStr);
i = 0;
while (i < C_THSTR && ThStr.nStr[i] >= 0) {
GetRecord(&RecStr, ThStr.nStr[i], &Str);
AppendRecord(lpRetRec, &Str);
i ++ ;
}
return TRUE;
}
示例3: DelHash
tBOOL DelHash(DWHASH_TYPE *lpHash, tVOID *lpItem, tINT nDelInfo)
{
tINT nPos;
DWHASH_BLOCK_TYPE HashItem;
DWHASH_NEXT_TYPE NextItem;
tINT i;
nPos = lpHash->pHashCalFunc(lpItem);
if (nPos < 0) nPos *= -1;
if (nPos >= lpHash->nBucketCount) { // exception
nPos %= lpHash->nBucketCount;
}
memcpy(&HashItem, lpHash->lpBuf + nPos*sizeof(DWHASH_BLOCK_TYPE), sizeof(DWHASH_BLOCK_TYPE));
if (HashItem.nInfo == nDelInfo) { // 처음 것을 지울 때..
if (HashItem.lpNextRec == NULL) {
HashItem.nInfo = -1;
memcpy(lpHash->lpBuf + nPos*sizeof(DWHASH_BLOCK_TYPE), &HashItem, sizeof(DWHASH_BLOCK_TYPE));
}
else { // 첫번째 것을 세팅한다.
GetRecord(HashItem.lpNextRec, 0, &NextItem);
DelRecord(HashItem.lpNextRec, 0);
HashItem.nInfo = NextItem.nInfo;
if (HashItem.lpNextRec->nUsed == 0) { // clear하자
FreeRecord(HashItem.lpNextRec);
free(HashItem.lpNextRec);
HashItem.lpNextRec = NULL;
}
memcpy(lpHash->lpBuf + nPos*sizeof(DWHASH_BLOCK_TYPE), &HashItem, sizeof(DWHASH_BLOCK_TYPE));
if (lpHash->nCollision > 0) lpHash->nCollision --;
}
}
else if (HashItem.lpNextRec) { // 더 있으면 더 찾아야지..
for ( i = 0 ; i < HashItem.lpNextRec->nUsed ; i ++ ) {
GetRecord(HashItem.lpNextRec, i, &NextItem);
if (NextItem.nInfo == nDelInfo) {
DelRecord(HashItem.lpNextRec, i);
if (lpHash->nCollision > 0) lpHash->nCollision --;
break;
}
}
if (HashItem.lpNextRec->nUsed == 0) { // clear하자
FreeRecord(HashItem.lpNextRec);
free(HashItem.lpNextRec);
HashItem.lpNextRec = NULL;
memcpy(lpHash->lpBuf + nPos*sizeof(DWHASH_BLOCK_TYPE), &HashItem, sizeof(DWHASH_BLOCK_TYPE));
}
}
else { // not found
return TRUE;
}
return TRUE;
}
示例4: UpdateThTime
tBOOL UpdateThTime(pthread_t ThreadId)
{
tBOOL bRetVal = TRUE;
#if defined(_USE_SAFETH)
tINT nItem;
SAFETH_FORMAT SafeItem;
time_t t = time(NULL);
tINT last_state;
if (!bStSafeTh) return TRUE;
//pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &last_state);
pthread_cleanup_push((tVOID *)pthread_mutex_unlock, (tVOID *)&gCheckTh);
pthread_mutex_lock(&gCheckTh) ;
SafeItem.ThreadId = ThreadId;
nItem = FindRecord(&RecordThTime, &SafeItem, TRUE, (CompProcP)Comp_ThreadId);
if (nItem == -1) { // 새로운 thread
bRetVal = FALSE;
goto EndProc;
}
else {
t = time(NULL); // 현재 시간..
GetRecord(&RecordThTime, nItem, &SafeItem);
memcpy(&(SafeItem.s_time), &t, sizeof(time_t));
SetRecord(&RecordThTime, nItem, &SafeItem);
}
EndProc:;
//pthread_mutex_unlock(&gCheckTh);
pthread_cleanup_pop(1);
//pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &last_state);
#endif
return bRetVal;
}
示例5: GlNormal3f
int GlNormal3f(int argument_count, void* data)
{
int error = 0;
VALUE X = GetRecord("x", gCurrentContext);
VALUE Y = GetRecord("y", gCurrentContext);
VALUE Z = GetRecord("z", gCurrentContext);
glNormal3f(TypeFloat(X),
TypeFloat(Y),
TypeFloat(Z));
gLastExpression.type = VAL_NIL;
gLastExpression.data.primitive = 0;
return error;
}
示例6: GlColor3f
int GlColor3f(int argument_count, void* data)
{
int error = 0;
VALUE R = GetRecord("r", gCurrentContext);
VALUE G = GetRecord("g", gCurrentContext);
VALUE B = GetRecord("b", gCurrentContext);
glColor3f(TypeFloat(R),
TypeFloat(G),
TypeFloat(B));
gLastExpression.type = VAL_NIL;
gLastExpression.data.primitive = 0;
return error;
}
示例7: PutHash
tBOOL PutHash(DWHASH_TYPE *lpHash, tVOID *lpItem)
{
tINT nPos;
DWHASH_BLOCK_TYPE HashItem;
DWHASH_NEXT_TYPE NextItem;
tINT i;
nPos = lpHash->pHashCalFunc(lpItem);
if (nPos < 0) nPos *= -1;
if (nPos >= lpHash->nBucketCount) { // exception
nPos %= lpHash->nBucketCount;
}
memcpy(&HashItem, lpHash->lpBuf + nPos*sizeof(DWHASH_BLOCK_TYPE), sizeof(DWHASH_BLOCK_TYPE));
if (HashItem.nInfo == -1) { // 없다.
return FALSE;
}
lpHash->pHashPutFunc(lpItem, HashItem.nInfo);
if (HashItem.lpNextRec) {
for ( i = 0 ; i < HashItem.lpNextRec->nUsed ; i ++ ) {
GetRecord(HashItem.lpNextRec, i, &NextItem);
lpHash->pHashPutFunc(lpItem, NextItem.nInfo);
}
}
return TRUE;
}
示例8: DuckParses
/* parses(source) -> boolean */
int DuckParses(int argument_count, void* data)
{
L_TOKEN* lexing;
char* buffer;
int error = 0;
VALUE argument = GetRecord("source", gCurrentContext);
gLastExpression.type = VAL_PRIMITIVE;
gLastExpression.data.primitive = 0;
if (argument.type == VAL_STRING)
{
lexing = LexSourceBuffer(argument.data.string, &buffer, CONTEXT_FREE_GRAMMAR);
if (lexing == NULL)
{
gLastExpression.data.primitive = -1;
FreeLexing(lexing, buffer);
//return 1;
return 0;
}
gLastExpression.data.primitive = ParseSucceeds(lexing, PARSE_TABLE, CONTEXT_FREE_GRAMMAR);
if (gLastExpression.data.primitive == 0) {
FreeLexing(lexing, buffer);
return 0;
}
/* free lexing */
FreeLexing(lexing, buffer);
}
return error;
}
示例9: GetSection
wyChar *
wyIni::GetValue(const wyChar *sec,const wyChar *key, wyChar *comment)
{
struct tagSection *st = GetSection(sec);
struct tagRecord *result;
if(!st)
{
strcpy(comment,"");
return "";
}
result = GetRecord(st,key);
if(result != NULL)
{
strcpy(comment,result->m_comments.GetString());
return (wyChar *)result->m_value.GetString();
}
else
{
strcpy(comment,"");
return "";
}
}
示例10: vkDestroySwapchainKHR
// needs to be separate because it releases internal resources
void WrappedVulkan::vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR obj, const VkAllocationCallbacks* pAllocator)
{
// release internal rendering objects we created for rendering the overlay
{
SwapchainInfo &info = *GetRecord(obj)->swapInfo;
RenderDoc::Inst().RemoveFrameCapturer(LayerDisp(m_Instance), info.wndHandle);
VkRenderPass unwrappedRP = Unwrap(info.rp);
GetResourceManager()->ReleaseWrappedResource(info.rp, true);
ObjDisp(device)->DestroyRenderPass(Unwrap(device), unwrappedRP, NULL);
for(size_t i=0; i < info.images.size(); i++)
{
VkFramebuffer unwrappedFB = Unwrap(info.images[i].fb);
VkImageView unwrappedView = Unwrap(info.images[i].view);
GetResourceManager()->ReleaseWrappedResource(info.images[i].fb, true);
// note, image doesn't have to be destroyed, just untracked
GetResourceManager()->ReleaseWrappedResource(info.images[i].im, true);
GetResourceManager()->ReleaseWrappedResource(info.images[i].view, true);
ObjDisp(device)->DestroyFramebuffer(Unwrap(device), unwrappedFB, NULL);
ObjDisp(device)->DestroyImageView(Unwrap(device), unwrappedView, NULL);
}
}
VkSwapchainKHR unwrappedObj = Unwrap(obj);
GetResourceManager()->ReleaseWrappedResource(obj, true);
ObjDisp(device)->DestroySwapchainKHR(Unwrap(device), unwrappedObj, pAllocator);
}
示例11: AFX_MANAGE_STATE
void CDocStructRecordItem::OnDrawCaption(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pMetrics) {
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDocStructRecord* pRecord = (CDocStructRecord*)GetRecord();
if (pRecord == NULL) {
return;
}
pDrawArgs->nTextAlign = DT_VCENTER;
if (pRecord->m_nCurrentLayout == DocumentStructureLayout(Thumbnail)) {
if (pRecord->IsPage()) {
CRect rcCaption;
rcCaption.SetRect(pDrawArgs->rcItem.left - RECORD_ITEM_OFFSET + 1, pDrawArgs->rcItem.bottom - RECORD_TEXT_OFFSET - 5, pDrawArgs->rcItem.right - pDrawArgs->pRow->GetTreeDepth() * RECORD_ITEM_OFFSET, pDrawArgs->rcItem.bottom);
pDrawArgs->rcItem.SetRect(rcCaption.TopLeft(), rcCaption.BottomRight());
} else {
CRect rcCaption (pDrawArgs->rcItem);
rcCaption.left += 3;
rcCaption.right -= pDrawArgs->pRow->GetTreeDepth() * RECORD_ITEM_OFFSET;
pDrawArgs->rcItem.SetRect(rcCaption.TopLeft(), rcCaption.BottomRight());
}
}
// If this is a "click" page, draw icon in front of page title
bool bDrawClickIcon = pRecord->IsPage() && pRecord->m_pContainer != NULL && pRecord->m_pContainer->ShowClickIcon(pRecord->m_pvData);
if (bDrawClickIcon) {
CXTPReportPaintManager* pPaintManager = pDrawArgs->pControl->GetPaintManager();
if (pPaintManager) {
CRect rcCaption(pDrawArgs->rcItem);
CRect rcBitmap(rcCaption.right-22, rcCaption.top, rcCaption.right-2, rcCaption.bottom);
CSize csBitmap = ((CXTPDocumentStructurePaintManager*)pPaintManager)->DrawCustomBitmap(pDrawArgs->pDC, pDrawArgs->pRow, rcBitmap, 5);
pDrawArgs->rcItem.right = rcBitmap.left;
}
}
CXTPReportRecordItem::OnDrawCaption(pDrawArgs, pMetrics);
}
示例12:
HRESULT KG3DDefaultShaderGroupSolid::ReplaceDefaultShader( DWORD dwType, const KG3DDefaultShaderGroupElem& newShader, KG3DDefaultShaderGroupElem& oldShader)
{
DefaultShaderRecord& DS =GetRecord(dwType);
oldShader = DS.elem;
DS.elem = newShader;
return S_OK;
}
示例13: FindSlot
// get or create the record for a specified key
void *Untyped::Open(Key aKey)
{
// convert key to a slot
// (HACK: assume key is already a hash)
size_t slot = FindSlot(aKey);
// if the slot is not empty...
if (slot != EMPTY)
{
// return the record
return GetRecord(slot);
}
// grow if the database is full
if (mCount >= mLimit)
Grow();
// add a new record
void *record = AllocRecord(aKey);
// check parent
const void *source = mNil;
if (this != &parent && parent.GetCount())
if (Key aParentKey = parent.Get(aKey))
source = Find(aParentKey);
CreateRecord(record, source);
// return the record
return record;
}
示例14: DatosProceso
int DatosProceso(int id,Tipo_Proceso *pProceso,char szProceso[])
{
char szSql[1000];
Tipo_XML *xml=NULL;
int sts;
sprintf(szSql,"select ip,cantidad,port from procesos where proceso='%s'",szProceso);
xml=GetRecord(id,szSql,xml,&sts);
if (sts==0)
{
printf("El proceso %s, no existe en la tabla de procesos\n\r",szProceso);
xml=CierraXML(xml);
exit(1);
}
//ImprimeXML(xml);
if (!GetIntXML(xml,"CANTIDAD",&pProceso->nCantidad)) goto close;
if (!GetIntXML(xml,"PORT",&pProceso->nPort)) goto close;
//if (!GetIntXML(xml,"FORMA_CONEXION_BD",&pProceso->nFormaConexionBD)) goto close;
GetStrXML(xml,"IP",pProceso->szIp,sizeof(pProceso->szIp));
xml=CierraXML(xml);
global.nProcesos = pProceso->nCantidad;
return 1;
close:
CloseDatabase(id);
exit(1);
}
示例15: GetRecord
int dbDatabase::GetRecord(const String &tbname, int recno, dbRecord& Record) {
int h;
if((h = GetTableHandle(tbname)) == MTDB_TB_NOT_FOUND)
return MTDB_TB_NOT_FOUND;
return GetRecord(h, recno, Record);
}