MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / lock

Method lock

2dlib/surface.cpp:438–466  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

436// ---------------------------------------------------------------------------
437
438char *grSurface::lock(int *rowsize) {
439 bool grerr;
440
441 ASSERT(m_SurfInit);
442
443 switch (ddsfObj.type) {
444 case SURFTYPE_VIDEOSCREEN:
445 case SURFTYPE_GENERIC:
446 grerr = ddgr_surf_Lock(&ddsfObj, (void **)&m_OrigDataPtr, &m_DataRowsize);
447 break;
448 case SURFTYPE_MEMORY:
449 grerr = gr_mem_surf_Lock(&ddsfObj, (void **)&m_OrigDataPtr, &m_DataRowsize);
450 break;
451 default:
452 Int3(); // invalid type!!
453 }
454
455 m_DataPtr = m_OrigDataPtr;
456 *rowsize = m_DataRowsize;
457
458 if (!grerr)
459 return nullptr;
460
461 surf_Locked++; // increment lock counter for this surface
462
463 rend_SetSoftwareParameters(ddgr_GetAspectRatio(), ddsfObj.w, ddsfObj.h, m_DataRowsize, (uint8_t *)m_OrigDataPtr);
464
465 return m_DataPtr;
466}
467
468/* do lock based off of x,y offsets */
469char *grSurface::lock(int x, int y, int *rowsize) {

Callers 15

ShowRadViewFunction · 0.45
UpdateTextureViewsMethod · 0.45
UpdateTextureViewMethod · 0.45
UpdateMegacellViewMethod · 0.45
RenderTexFrameFunction · 0.45
RenderWireFrameFunction · 0.45
DrawPlayerOnTerrainMethod · 0.45
DrawTerrainCellMethod · 0.45
DrawTerrainWorldMethod · 0.45
UpdateViewMethod · 0.45
ListBoxProcMethod · 0.45
StartEditorFrameFunction · 0.45

Calls 4

ddgr_surf_LockFunction · 0.85
gr_mem_surf_LockFunction · 0.85
ddgr_GetAspectRatioFunction · 0.85

Tested by 2

RenderTexFrameFunction · 0.36
RenderWireFrameFunction · 0.36