コード例 #1
0
ファイル: svg_group.c プロジェクト: pltxtra/libsvgandroid
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;
}
コード例 #2
0
ファイル: esvg.cpp プロジェクト: chagge/esvg
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);
		}
	}
}
コード例 #3
0
ファイル: Renderer.cpp プロジェクト: chagge/esvg
// 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);
	}
}