//retrieves the first 512 characters from the temp_buffer and removes them from the buffer. std::string Packetizer::buildPacket () { std::string tmp; while (packet_list.size () < PACKET_LIST_MAX && temp_buffer.length() < BUFFER_CHAR_SIZE && currentLine < getLines (&RreadFrom)) {//&& outOfData ()) { populateBuffer (); } tmp = temp_buffer.substr(0, BUFFER_CHAR_SIZE); temp_buffer.erase (0, BUFFER_CHAR_SIZE); return tmp; }
// OpenGL methods void AtomRenderable::render(Ambrosia::RenderPass renderPass, unsigned int elements) { // qDebug() << "AtomRenderable::render"; if (!(visible && display)) return; if (buffer == 0) populateBuffer(); if (elements & Buffer::COLOUR) { switch (renderPass) { case Ambrosia::DRAW_OUTLINE_PASS: if (renderPass == Ambrosia::DRAW_OUTLINE_PASS && highlightColour) { elements &= ~Buffer::COLOUR; glColor3f(highlightColour->r, highlightColour->g, highlightColour->b); } case Ambrosia::SHADOW_MAP_PASS: case Ambrosia::STENCIL_PASS: // set shaders if (renderableManager->specularShader) renderableManager->specularShader->disable(); break; case Ambrosia::DEPTH_SHADE_PASS: case Ambrosia::DEPTH_TRANSPARENT_PASS: case Ambrosia::DRAW_SHADE_PASS: case Ambrosia::DRAW_TRANSPARENT_PASS: case Ambrosia::DRAW_PASS: case Ambrosia::NAME_PASS: // set shaders if (renderableManager->specularShader) renderableManager->specularShader->enable(); break; default: break; } } // Render buffer if (renderFormat == renderableManager->BALLSANDSTICKS || renderFormat == renderableManager->SPACEFILL) { // Draw buffer if (renderPass == Ambrosia::NAME_PASS) { glPushName(this->_v2_renderable_name); } buffer->enable(elements); buffer->render(GL_TRIANGLE_STRIP, bufferIndex, vertexCount()); buffer->disable(); if (renderPass == Ambrosia::NAME_PASS) { glPopName(); } } // disable shaders if (renderableManager->specularShader) renderableManager->specularShader->disable(); }
void AtomRenderable::setTintColour(Colour * colour) { if (colour == this->tintColour) return; this->tintColour = colour; // reload buffer if (buffer && visible && display) { populateBuffer(); buffer->load(bufferIndex, vertexCount()); } }
void AtomRenderable::setAlpha(unsigned char alpha) { if (alpha == this->alpha) return; this->alpha = alpha; // reload buffer if (buffer && visible && display) { populateBuffer(); buffer->load(bufferIndex, vertexCount()); } }