INNER CODE UNIT · C++

needed_vtx_size

trillek-team/tec · client/imgui-system.cpp:328

		std::size_t needed_vtx_size = cmd_list->VtxBuffer.size() * sizeof(ImDrawVert);
		if (vbo_size < needed_vtx_size) {
			// Grow our buffer if needed
			vbo_size = needed_vtx_size + 2000 * sizeof(ImDrawVert);
			glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)vbo_size, NULL, GL_STREAM_DRAW);
		}

		unsigned char* vtx_data = (unsigned char*)glMapBufferRange(
				GL_ARRAY_BUFFER, 0, needed_vtx_size, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT);

		if (!vtx_data) {
			continue;
		}
		memcpy(vtx_data, &cmd_list->VtxBuffer[0], cmd_list->VtxBuffer.size() * sizeof(ImDrawVert));
		glUnmapBuffer(GL_ARRAY_BUFFER);

		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
		std::size_t needed_idx_size = cmd_list->IdxBuffer.size() * sizeof(ImDrawIdx);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…