Пример #1
0
        //
        // FNA3D_ResetBackbuffer
        //

        public static void FNA3D_ResetBackbuffer(IntPtr device,
                                                 ref FNA3D_PresentationParameters presentationParameters)
        {
            var renderer = Renderer.Get(device);

            var state = (State)renderer.UserData;

            if (state == null)
            {
                state             = new State();
                renderer.UserData = state;
            }

            state.BackBufferWidth  = presentationParameters.backBufferWidth;
            state.BackBufferHeight = presentationParameters.backBufferHeight;
            state.AdjustViewport   = // see also FNA3D_SetViewport
                                     (presentationParameters.displayOrientation == DisplayOrientation.Default);

            presentationParameters.backBufferFormat = SurfaceFormat.Color;
            presentationParameters.isFullScreen     = 1;
        }
Пример #2
0
        //
        // FNA3D_CreateDevice
        //

        public static IntPtr FNA3D_CreateDevice(
            ref FNA3D_PresentationParameters presentationParameters,
            byte debugMode)
        {
            int depthSize, stencilSize = 0;

            switch (presentationParameters.depthStencilFormat)
            {
            case DepthFormat.None:              depthSize = 0; break;

            case DepthFormat.Depth16:           depthSize = 16; break;

            case DepthFormat.Depth24:           depthSize = 24; break;

            case DepthFormat.Depth24Stencil8:   depthSize = 24; stencilSize = 8; break;

            default:                throw new ArgumentException("depthStencilFormat");
            }

            int swapInterval = presentationParameters.presentationInterval switch
            {
                PresentInterval.Two => 2,
                PresentInterval.Immediate => 0,
                // Default, One, or any other value:
                _ => 1
            };

            bool checkErrors = GameRunner.Singleton.CheckGlErrors();

            var device = Renderer.Create(GameRunner.Singleton.Activity,
                                         GameRunner.Singleton.OnSurfaceChanged,
                                         8, 8, 8, 0, depthSize, stencilSize,
                                         swapInterval, checkErrors);

            FNA3D_ResetBackbuffer(device, ref presentationParameters);
            return(device);
        }
Пример #3
0
 public static extern void FNA3D_ResetBackbuffer(
     IntPtr device,
     ref FNA3D_PresentationParameters presentationParameters
     );
Пример #4
0
 public static extern IntPtr FNA3D_CreateDevice(
     ref FNA3D_PresentationParameters presentationParameters,
     byte debugMode
     );