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

Method create

2dlib/surface.cpp:150–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148grSurface::~grSurface() { grSurface::free(); }
149
150void grSurface::create(int w, int h, int bpp, unsigned type, unsigned flags, const char *name) {
151 bool grerr;
152
153 if (m_SurfInit)
154 grSurface::free();
155
156 // create new surface: set up surface structure
157 memset(&ddsfObj, 0, sizeof(ddgr_surface));
158 ddsfObj.w = w;
159 ddsfObj.h = h;
160 ddsfObj.bpp = bpp;
161 ddsfObj.type = (uint16_t)type;
162 ddsfObj.flags = (uint16_t)flags;
163
164 if (name)
165 strncpy(ddsfObj.name, name, 15);
166
167 switch (type) {
168 case SURFTYPE_VIDEOSCREEN:
169 grerr = ddgr_surf_InitVideo(&ddsfObj);
170 break;
171 case SURFTYPE_GENERIC:
172 grerr = ddgr_surf_Create(&ddsfObj);
173 break;
174 case SURFTYPE_MEMORY:
175 grerr = (bool)gr_mem_surf_Create(&ddsfObj);
176 break;
177 default:
178 Int3(); // Invalid!!
179 }
180 if (!grerr)
181 Int3();
182
183 add_to_list(&ddsfObj);
184
185 m_SurfInit = 1;
186}
187
188void grSurface::free() {
189 /* Freeing surface is same regardless of whether it was loaded from a bitmap handle or

Callers 15

InitHemicubeFunction · 0.45
OnInitDialogMethod · 0.45
UpdateRobotViewMethod · 0.45
UpdateTextureViewsMethod · 0.45
DrawDoorwayDoorPicMethod · 0.45
OnInitDialogMethod · 0.45
UpdateTextureViewMethod · 0.45
UpdateMegacellViewMethod · 0.45
UpdateViewMethod · 0.45
UpdateWeaponViewMethod · 0.45
UpdateDoorViewMethod · 0.45
UpdateAnimStateViewMethod · 0.45

Calls 3

ddgr_surf_InitVideoFunction · 0.85
ddgr_surf_CreateFunction · 0.85
gr_mem_surf_CreateFunction · 0.85

Tested by

no test coverage detected