Esempio n. 1
0
// Application
int main (void) {
	Tlist list;
	
	initialize_list(&list);
	insert_to_list_end(&list, CreateComplex(1, 2)); // add 1+2i
	insert_to_list_end(&list, CreateComplex(2, 3)); // add 2+3i
	insert_to_list_end(&list, CreateComplex(3, 4)); // add 3+4i
	insert_to_list_end(&list, CreateComplex(4, 5)); // add 4+5i
	print_list(list);
	cleanup_list(&list);
	heapleak();
	fflush(stdin); getchar();
	//heapdump();


}
Esempio n. 2
0
//////////////////////////////////////////////////////////////////////
// Descripcion:
// - Crea una superficie compleja y le asocia una superficie para que
//   sea backbuffer. En caso de que todo vaya bien, se intentara
//   crear un objeto para controla el gamma.
// Parametros:
// - poDXDraw: Instancia a clase DXDraw con objeto DirectDraw.
// - ubNumBackBuffers: Numero de buffers en superficie compleja.
// - poBackBuffer: Puntero a superfice que hara de backbuffer y sera
//   de tipo ATTACHED, acabando asociada a la compleja creada.
// - wMem: Tipo de memoria en donde crear la superficie compleja.
// - bD3DSurface: True si la superficie se va a utilizar con un device
//   3D y false en caso contrario. Por defecto vale false.
// Devuelve:
// - true: Todo fue bien.
// - false: Existieron problemas
// Notas:
// - Este metodo es ideal para crear, rapidamente, un sistema de
//   intercambio con superficie compleja. Simplemente realiza las
//   dos llamadas que hay que efectuar por separado, aqui dentro.
// - En caso de que ya haya creada una superficie, la liberara.
////////////////////////////////////////////////////////////////////// 
bool DXDDSurfaceScreen::CreateComplex(const DXDraw* const poDXDraw, 
                                      const byte ubNumBackBuffers,
                                      DXDDSurfaceBack* const poBackBuffer, 
                                      const DXDDDefs::DXDDMemType& wMem,
                                      const bool bD3DSurface)
{
  // SOLO si existe puntero a la supercie pasada
  DXASSERT(NULL != poBackBuffer);
  // SOLO si superficie pasada no esta creada
  DXASSERT(DXDDDefs::SURFACETYPE_NOCREATED == poBackBuffer->GetType());
 
  if (CreateComplex(poDXDraw, ubNumBackBuffers, wMem, bD3DSurface)) {
    // Se ha creado la superficie compleja
    if(AttachToComplex(poBackBuffer)) {
      // Se logro asociar el backbuffer
      
      // Se guarda la referencia al BackBuffer
      m_poBackBuffer = poBackBuffer; 
            
      // Todo correcto
      return true;
    }
  }
  
  // Existieron problemas
  return false;
}
CollapsedAKQReducedCubSComplexSupplier<Traits>::CollapsedAKQReducedCubSComplexSupplier(CubSComplexPtr cubSComplex)
{
    _logger.Begin(FGLogger::Details, "converting CubCellSet -> CubSet");
    CubSetPtr cubSet = CubSetFactory<CubSet>::ConvertCubCellSet(cubSComplex->getCubCellSet(), true);
    _logger.End();
    CreateComplex(cubSet);
    CreateAlgorithm();
}
CollapsedAKQReducedCubSComplexSupplier<Traits>::CollapsedAKQReducedCubSComplexSupplier(DebugComplexType type)
{
    CubSetPtr cubSet = CubSetFactory<CubSet>::Create(type, true);
    CreateComplex(cubSet);
    CreateAlgorithm();
}
CollapsedAKQReducedCubSComplexSupplier<Traits>::CollapsedAKQReducedCubSComplexSupplier(const char* filename)
{
    CubSetPtr cubSet = CubSetFactory<CubSet>::Load(filename, true);
    CreateComplex(cubSet);
    CreateAlgorithm();
}