bool SMreadPostAsCompactPre::open(SMreader* smreader, bool preserve_order, int limit_buffer_size)
{
  if (smreader == 0 || !smreader->post_order)
  {
    return false;
  }
  this->smreader = smreader;
  this->preserve_order = preserve_order;

  nverts = smreader->nverts;
  nfaces = smreader->nfaces;

  v_count = 0;
  f_count = 0;

  bb_min_f = smreader->bb_min_f;
  bb_max_f = smreader->bb_max_f;

  vertex_hash = new my_hash;

  waiting_area = new DynamicVector();
  output_triangles = new DynamicVector();

  initVertexBuffer(1024, 0);
  initTriangleBuffer(2048, limit_buffer_size);

  return true;
}
bool begin()
{
	int Border = 2;
	Viewport[0] = glm::ivec4(Border, Border, FRAMEBUFFER_SIZE - 2 * Border);
	Viewport[1] = glm::ivec4((Window.Size.x >> 1) + Border, 1, FRAMEBUFFER_SIZE - 2 * Border);
	Viewport[2] = glm::ivec4((Window.Size.x >> 1) + Border, (Window.Size.y >> 1) + Border, FRAMEBUFFER_SIZE - 2 * Border);
	Viewport[3] = glm::ivec4(Border, (Window.Size.y >> 1) + Border, FRAMEBUFFER_SIZE - 2 * Border);

	bool Validated = true;
	Validated = Validated && glf::checkGLVersion(SAMPLE_MAJOR_VERSION, SAMPLE_MINOR_VERSION);
	Validated = Validated && glf::checkExtension("GL_ARB_viewport_array");
	Validated = Validated && glf::checkExtension("GL_ARB_separate_shader_objects");

	if(Validated && glf::checkExtension("GL_ARB_debug_output"))
		Validated = initDebugOutput();
	if(Validated)
		Validated = initProgram();
	if(Validated)
		Validated = initVertexBuffer();
	if(Validated)
		Validated = initVertexArray();
	if(Validated)
		Validated = initTexture();
	if(Validated)
		Validated = initFramebuffer();
	if(Validated)
		Validated = initSampler();

	return Validated && glf::checkError("begin");
}
Example #3
0
bool FSQuad::init(ID3D11Device* currDevice, ID3D11DeviceContext* currContext)
{

	initVertexBuffer(currDevice);

	return true;
}
Example #4
0
void HW3b::selectMode(int index){
    stopTimer();
    resetMode = index;
    initPoints();
    initVertexBuffer();
    updateGL();
    
}
Example #5
0
void HW3b::wave()
{
    getforce();
    getvelocity();
    getposition();
    initVertexBuffer();
    updateGL();
}
Example #6
0
void HW3b::setsize(int value)
{
    timer->stop();
    m_sliderGrid->setValue(value);
    m_spinboxGrid->setValue(value);
    grid = value+1;
//    sdepth = 5.0/4.0 * (grid+3);
//    sdepth = sdepth+0.6;
    initPoints();
    initPosition();
    initVertexBuffer();
    updateGL();
}
	bool begin()
	{
		bool Validated = true;

		if(Validated)
			Validated = initProgram();
		if(Validated)
			Validated = initVertexBuffer();
		if(Validated)
			Validated = initVertexArray();

		return Validated && this->checkError("begin");
	}
HRESULT ManagementSprite::init(ID3D11Device* p_device)
{
	HRESULT hr = S_OK;

	initSprites();
	initSpriteCollection();

	hr = initVertexBuffer(p_device);
	if(SUCCEEDED(hr))
		hr = initIndexBuffer(p_device);

	return hr;
}
Example #9
0
	bool begin()
	{
		bool Validated = true;

		if(Validated)
			Validated = initProgram();
		if(Validated)
			Validated = initVertexBuffer();
		if(Validated)
			Validated = initVertexArray();

		return Validated;
	}
void HistrogramStrech::initializeGL()
{
    // initialize GL function resolution for current context
    initializeGLFunctions();

    // init texture
    initTexture();

    // init vertex and fragment shaders
    initShaders();

    // initialize vertex buffer and write positions to vertex shader
    initVertexBuffer();
}
Example #11
0
bool begin()
{
	bool Validated = glf::checkGLVersion(SAMPLE_MAJOR_VERSION, SAMPLE_MINOR_VERSION);

	if(Validated && glf::checkExtension("GL_ARB_debug_output"))
		Validated = initDebugOutput();
	if(Validated)
		Validated = initProgram();
	if(Validated)
		Validated = initVertexBuffer();
	if(Validated)
		Validated = initVertexArray();

	return Validated && glf::checkError("begin");
}
	bool begin()
	{
		bool Validated = true;

		if(Validated)
			Validated = initProgram();
		if(Validated)
			Validated = initVertexBuffer();
		if(Validated)
			Validated = initVertexArray();

		glEnable(GL_DEPTH_TEST);

		return Validated;
	}
Example #13
0
bool begin()
{
	bool Validated = glf::checkGLVersion(SAMPLE_MAJOR_VERSION, SAMPLE_MINOR_VERSION);

	if(Validated)
		Validated = initProgram();
	if(Validated)
		Validated = initVertexBuffer();
	if(Validated)
		Validated = initVertexArray();
	if(Validated)
		Validated = initTexture2D();

	return Validated && glf::checkError("begin");
}
Example #14
0
t_ilm_bool initGlApplication()
{
    if (!initShader())
    {
        return ILM_FALSE;
    }

    if (!initVertexBuffer())
    {
        return ILM_FALSE;
    }

    glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glEnable(GL_BLEND);
    return ILM_TRUE;
}
Example #15
0
void HW3b::initializeGL()
{
    // initialize GL function resolution for current context
    initializeGLFunctions();
    initTexture();
    initShaders();
    initPoints();
    initVertexBuffer();
    
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glEnable(GL_BLEND);
    glEnable(GL_LINE_SMOOTH);
//    glEnable(GL_CULL_FACE);
    glEnable(GL_DEPTH_TEST);
    
    glClearColor(0.0, 0.0, 0.0, 0.0);	// set background color
    glColor3f   (1.0, 1.0, 0.0);		// set foreground color
}
Example #16
0
VOID JCDisplayObject::setTexture(IDirect3DTexture9* texture)
{
	m_lpTexture = texture;
	initVertexBuffer();
	if(m_lpTexture != NULL)
	{
		D3DSURFACE_DESC dest;
		m_lpTexture->GetLevelDesc(0, &dest);
		m_widthOriginal = (FLOAT)dest.Width;
		m_heightOriginal = (FLOAT)dest.Height;
	}
	else
	{
		m_widthOriginal = 0.0f;
		m_heightOriginal = 0.0f;
		setWidth(0.0f);
		setHeight(0.0f);
	}
}
Example #17
0
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HW3a::initializeGL:
//
// Initialization routine before display loop.
// Gets called once before the first time resizeGL() or paintGL() is called.
//
void
HW3a::initializeGL()
{
	// initialize GL function resolution for current context
	initializeGLFunctions();

	// init texture
	initTexture();

	// init vertex and fragment shaders
	initShaders();

	// initialize vertex buffer and write positions to vertex shader
	initVertexBuffer();

	// init state variables
	glClearColor(0.0, 0.0, 0.0, 0.0);	// set background color
	glColor3f   (1.0, 1.0, 0.0);		// set foreground color
}
Example #18
0
bool SMwriter_smc_old::open(FILE* file, int bits)
{
  initVertexBuffer(1024);
  initEdgeBuffer(1024);
  vertex_hash = new my_vertex_hash;
  dv = new DynamicVector();
  lc = new LittleCache();

  initEncoder(file);
  initModels(1);

  // write precision
  re_conn->encode(25,bits);

  // store precision (is needed in write_header)
  precision_bits = bits;

  v_count = 0;
  f_count = 0;

  return true;
}
Example #19
0
void HW3b::reset (){
    
    timer->stop();
    waving = false;
    grid = 17;
    dt=0.006;
//    displayMode = TEX_WIRE;
//    resetMode = HILLFOUR;
    sphi=45.0;stheta=45.0;
    sdepth = 1.5;
    m_comboBox->setCurrentIndex(displayMode);
    m_comboBox_mode->setCurrentIndex(resetMode);
    m_spinboxSpeed->setValue(6);
    m_sliderSpeed->setValue(6);
    m_spinboxGrid->setValue(16);
    m_sliderGrid->setValue(16);
    initPosition();
    initPoints();
    initVertexBuffer();
    
 
    updateGL();
}
Example #20
0
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HW3a::changeSubdiv:
//
// Slot function to change number of recursive subdivisions.
//
void
HW3a::changeSubdiv(int subdivisions)
{
	// update slider and spinbox
//	......

    m_sliderSubdiv->blockSignals(true);
    m_sliderSubdiv->setValue(subdivisions);
    m_sliderSubdiv->blockSignals(false);



    m_spinBoxSubdiv->blockSignals(true);
    m_spinBoxSubdiv->setValue(subdivisions);
    m_spinBoxSubdiv->blockSignals(false);
	// init vars
	m_subdivisions = subdivisions;

	// compute new vertices and texture coordinates
	initVertexBuffer();

	// draw
	updateGL();
}
Example #21
0
//void DXInstancedSprite::initInstanceBuffer(){
//	HRESULT hr;
//	instances = new InstanceStruct[instanceMaxSize];
//
//	// fill the buffer with placeholder values.
//	for (int i = 0; i < instanceMaxSize; i++){
//		D3DXMatrixScaling(&(instances[i].worldMatrix), 0, 0, 0);
//	}
//
//	D3D11_BUFFER_DESC instanceBufferDesc = { 
//		sizeof(InstanceStruct) * instanceMaxSize,
//		D3D11_USAGE_DYNAMIC, //D3D11_USAGE_DEFAULT,
//		D3D11_BIND_VERTEX_BUFFER,//D3D11_BIND_CONSTANT_BUFFER, //
//		D3D11_CPU_ACCESS_WRITE,
//		0,
//		0
//	};
//	D3D11_SUBRESOURCE_DATA srd = { instances, 0, 0 };
//
//	// Create the instance buffer.
//	hr = dev->CreateBuffer(&instanceBufferDesc, &srd, &instanceBuffer);
//	if (FAILED(hr))
//	{
//		TRACE("per instance buffer create failed!");
//	}
//}
void DXInstancedSprite::updateInstanceBuffer(const std::unordered_map<int, ObjectRectTransformDesc*>& sprites){
	HRESULT hr;
	int transformCount = sprites.size();
	// instance buffer is refreshed every update.
	if (transformCount > instanceMaxSize){
		// now we need to resize the instance buffer to match the new set of objects.
		instanceMaxSize *= 2;
		SAFE_RELEASE(vertexBuffer);
		initVertexBuffer();
	}
	
	// after ensuring we have a buffer large enough to hold the object transforms, we copy the transforms to the buffer

	D3D11_MAPPED_SUBRESOURCE resource;
	hr = devcon->Map(vertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &resource);

	SpriteVertexData* vertexData = (SpriteVertexData*)resource.pData;
	int inc = 0;
	for (auto it = sprites.begin(); it != sprites.end(); ++it){
		ObjectRectTransformDesc* transformDesc = it->second;
		vertexData[inc].position.x = transformDesc->position.x - transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y - transformDesc->widthHeight.y;
		vertexData[inc].position.z = 0;
		vertexData[inc].uv = Vector2(0, 1);

		//vertexData[inc].position.z = vertexData[inc].position.y;
		inc++;

		vertexData[inc].position.x = transformDesc->position.x - transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y + transformDesc->widthHeight.y;
		vertexData[inc].position.z = 0;
		//vertexData[inc].position.z = vertexData[inc].position.y;
		vertexData[inc].uv = Vector2(0, 0);
		inc++;

		vertexData[inc].position.x = transformDesc->position.x + transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y + transformDesc->widthHeight.y;
		vertexData[inc].position.z = 0;
		//vertexData[inc].position.z = vertexData[inc].position.y;
		vertexData[inc].uv = Vector2(1, 0);
		inc++;

		vertexData[inc].position.x = transformDesc->position.x - transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y - transformDesc->widthHeight.y;
		vertexData[inc].position.z = 0;
		//vertexData[inc].position.z = vertexData[inc].position.y;
		vertexData[inc].uv = Vector2(0, 1);
		inc++;

		vertexData[inc].position.x = transformDesc->position.x + transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y + transformDesc->widthHeight.y;
		vertexData[inc].position.z = 0;
		vertexData[inc].uv = Vector2(1, 0);
		//vertexData[inc].position.z = vertexData[inc].position.y;
		inc++;

		vertexData[inc].position.x = transformDesc->position.x + transformDesc->widthHeight.x;
		vertexData[inc].position.y = transformDesc->position.y - transformDesc->widthHeight.x;
		vertexData[inc].position.z = 0;
		vertexData[inc].uv = Vector2(1, 1);
		//vertexData[inc].position.z = vertexData[inc].position.y;
		inc++;
	}

	devcon->Unmap(vertexBuffer, 0);

	instanceCount = transformCount;
}
Example #22
0
void DXInstancedSprite::init(){
	initShadersAndInputLayout();
	initVertexBuffer();
	//initInstanceBuffer();
	initBlendState();
}