svg_status_t _svg_group_drop_element (svg_group_t *group, svg_element_t *element) { int k; if(group->element == NULL) { SVG_ERROR("group %p has a NULL pointer for an element buffer. num_elements is %d\n", group, group->num_elements); exit(0); } SVG_DEBUG(" will scan for %p in %d number of elements....\n", element, group->num_elements); for(k = 0; k < group->num_elements; k++) { SVG_DEBUG(" compare: %p == %p ?\n", group->element[k], element); if(group->element[k] == element) { SVG_DEBUG(" matched! will dereference %p\n", element); _svg_element_dereference(element); element->parent = NULL; group->num_elements--; for(; k < group->num_elements; k++) { group->element[k] = group->element[k + 1]; } group->element[k] = NULL; return SVG_STATUS_SUCCESS; } } return SVG_STATUS_NO_SUCH_ELEMENT; }
void esvg::Document::displayDebug() { SVG_DEBUG("Main SVG node : size=" << m_size); for (int32_t iii=0; iii<m_subElementList.size(); iii++) { if (NULL != m_subElementList[iii]) { m_subElementList[iii]->display(1); } } }
// Writing the buffer to a .PPM file, assuming it has // RGB-structure, one byte per color component //-------------------------------------------------- void esvg::Renderer::writePpm(std::string fileName) { if (NULL == m_buffer) { return; } FILE* fd = fopen(fileName.c_str(), "wb"); if(NULL != fd) { int32_t sizeX = m_size.x(); int32_t sizeY = m_size.y(); SVG_DEBUG("Generate ppm : " << m_size); fprintf(fd, "P6 %d %d 255 ", sizeX, sizeY); for (int32_t iii=0 ; iii<sizeX*sizeY; iii++) { fwrite(m_buffer+iii*DATA_ALLOCATION_ELEMENT, 1, 3, fd); } fclose(fd); } }