예제 #1
0
		m::i32 add(Args...args)
		{
			reallocBuffer();
			m_index[m_size] = m_buffer + m_size;
			new (m_buffer + m_size) T(std::forward<Args>(args)...);
			return m_size++;
		}
예제 #2
0
		m::i32 add(const T& defaultValue)
		{
			reallocBuffer();
			m_index[m_size] = m_buffer + m_size;
			new (m_buffer + m_size) T(defaultValue);
			return m_size++;
		}
예제 #3
0
		//----------------------
		//
		//----------------------
		m::i32 add()
		{
			reallocBuffer();
			m_index[m_size] = m_buffer + m_size;
			new (m_buffer + m_size) T();
			return m_size++;
		}
void ARSTREAM_ReaderTb_initMultiBuffers (int initialSize)
{
    int buffIndex;
    for (buffIndex = 0; buffIndex < NB_BUFFERS; buffIndex++)
    {
        reallocBuffer (buffIndex, initialSize);
        multiBufferIsFree[buffIndex] = 1;
    }
}
예제 #5
0
void DrawNode3D::ensureCapacity(int count)
{
    CCASSERT(count>=0, "capacity must be >= 0");
    
    if(_bufferCount + count > _bufferCapacity)
    {
		_bufferCapacity += MAX(_bufferCapacity, count);
        reallocBuffer();
	}
}
uint8_t* ARSTREAM_ReaderTb_GetNextFreeBuffer (uint32_t *retSize, int reallocToDouble)
{
    uint8_t *retBuffer = NULL;
    int nbtest = 0;
    if (retSize == NULL)
    {
        return NULL;
    }
    do
    {
        if (multiBufferIsFree[currentBufferIndex] == 1)
        {
            if (reallocToDouble != 0)
            {
                reallocBuffer (currentBufferIndex, 2* multiBufferSize [currentBufferIndex]);
            }
            retBuffer = multiBuffer[currentBufferIndex];
            *retSize = multiBufferSize[currentBufferIndex];
        }
        currentBufferIndex = (currentBufferIndex + 1) % NB_BUFFERS;
        nbtest++;
    } while (retBuffer == NULL && nbtest < NB_BUFFERS);
    return retBuffer;
}