MCPcopy Create free account
hub / github.com/DaedalusX64/daedalus / Initialise

Method Initialise

Source/SysPSP/Graphics/GraphicsContext.cpp:707–830  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

705}
706
707bool IGraphicsContext::Initialise()
708{
709 sceGuInit();
710
711 bool is_videmem; // Result is ignored
712
713 void * draw_buffer;
714 void * disp_buffer;
715 void * depth_buffer;
716
717 if( g32bitColorMode )
718 {
719 PIXEL_SIZE = 4; /* change this if you change to another screenmode */
720 SCR_MODE = GU_PSM_8888;
721 }
722 else
723 {
724 PIXEL_SIZE = 2; /* change this if you change to another screenmode */
725 SCR_MODE = GU_PSM_5650;
726 }
727
728 // compute and allocate buffers for largest possible frame
729 if ( PSP_TV_CABLE > 0 )
730 {
731 BUF_WIDTH = 768;
732 SCR_WIDTH = 720;
733 SCR_HEIGHT = 480;
734
735 // Hack, Tv out doesn't work in 16bit for some reasons so we use 32bit
736 //
737 PIXEL_SIZE = 4;
738 SCR_MODE = GU_PSM_8888;
739 }
740
741 //Alloc all buffers with one call to save alloc list overhead //Corn
742 if ( PSP_TV_CABLE > 0 )
743 {
744 CVideoMemoryManager::Get()->Alloc( FRAME_SIZE + LACED_SIZE + DEPTH_SIZE, &draw_buffer, &is_videmem );
745 disp_buffer = (void*)((u32)draw_buffer + FRAME_SIZE);
746 depth_buffer = (void*)((u32)draw_buffer + FRAME_SIZE + LACED_SIZE);
747 }
748 else
749 {
750 CVideoMemoryManager::Get()->Alloc( FRAME_SIZE + FRAME_SIZE + DEPTH_SIZE, &draw_buffer, &is_videmem );
751 disp_buffer = (void*)((u32)draw_buffer + FRAME_SIZE);
752 depth_buffer = (void*)((u32)draw_buffer + FRAME_SIZE + FRAME_SIZE);
753 }
754
755 void * draw_buffer_rel( VramAddrAsOffset( draw_buffer ) );
756 void * disp_buffer_rel( VramAddrAsOffset( disp_buffer ) );
757 void * depth_buffer_rel( VramAddrAsOffset( depth_buffer ) );
758 save_draw_rel = draw_buffer_rel;
759 save_disp_rel = disp_buffer_rel;
760 save_depth_rel = depth_buffer_rel;
761
762#ifdef DAEDALUS_DEBUG_DISPLAYLIST
763 printf( "Alloc %d bytes for draw buffer A at %p\n", FRAME_SIZE, draw_buffer );
764 printf( "Alloc %d bytes for draw buffer B at %p\n", FRAME_SIZE, disp_buffer );

Callers 1

CreateMethod · 0.45

Calls 2

pspDveMgrSetVideoOutFunction · 0.85
AllocMethod · 0.45

Tested by

no test coverage detected