Esempio n. 1
0
	WindowsBuffer::~WindowsBuffer()
	{
		glDeleteBuffers(getNumBuffers(), _bufferIDs);
		delete[] _bufferIDs;
		for (int i = 0; i < getNumBuffers(); i++)
		{
			if (_fences[i] != 0)
			{
				glDeleteSync(_fences[i]);
			}
		}
		delete [] _fences;
	}
Esempio n. 2
0
void NUKinectView::NUDrawGLScene() {

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glLoadIdentity();

  glEnable(GL_TEXTURE_2D);


  for (int i = 0; i < getNumBuffers(); i++) {
    if (!buffer_ptrs[i]) {
      continue;
    }
	  
    const int col = i % numCols;
    const int row = i / numCols;

    glBindTexture(GL_TEXTURE_2D, gl_depth_tex);

    _mutex.lock();
    glTexImage2D(GL_TEXTURE_2D, 0, 3, 640, 480, 0, GL_RGB, GL_UNSIGNED_BYTE, buffer_ptrs[i]);
    _mutex.unlock();

    glBegin(GL_TRIANGLE_FAN);
    glColor4f(255.0f, 255.0f, 255.0f, 255.0f);
    glTexCoord2f(0, 0); glVertex3f(0+col*640,0+row*480,0);
    glTexCoord2f(1, 0); glVertex3f(640+col*640,0+row*480,0);
    glTexCoord2f(1, 1); glVertex3f(640+col*640,480+row*480,0);
    glTexCoord2f(0, 1); glVertex3f(0+col*640,480+row*480,0);
    glEnd();

  } // for i

  glutSwapBuffers();
}
Esempio n. 3
0
ITransferBuffer* TransferBufferManager::create(const TransferBufferManagerKey& key)
{
    if (key.isEmpty())
    {
        UAVCAN_ASSERT(0);
        return UAVCAN_NULLPTR;
    }
    remove(key);

    TransferBufferManagerEntry* tbme = TransferBufferManagerEntry::instantiate(allocator_, max_buf_size_);
    if (tbme == UAVCAN_NULLPTR)
    {
        return UAVCAN_NULLPTR;     // Epic fail.
    }

    buffers_.insert(tbme);

    UAVCAN_TRACE("TransferBufferManager", "Buffer created [num=%u], %s", getNumBuffers(), key.toString().c_str());

    if (tbme != UAVCAN_NULLPTR)
    {
        UAVCAN_ASSERT(tbme->isEmpty());
        tbme->reset(key);
    }
    return tbme;
}
Esempio n. 4
0
int NUKinectView::setBuffer(char * buffer_ptr, const NUBufferSpec & spec, int buffer_ind) {
  if (buffer_ind >= getNumBuffers()) {
    return 1;
  }
  
  _mutex.lock();

  buffer_ptrs[buffer_ind] = buffer_ptr;
  //buffer_specs[buffer_ind] = spec;

  _mutex.unlock();

  return 0;
}
Esempio n. 5
0
bool TransferBufferManager::isEmpty() const
{
    return getNumBuffers() == 0;
}