Example #1
0
        public GuiHalSurface CreateSurface(int Width, int Height, GuiHalSurface.CreateFlags flags, GuiHalSurface.PixelFormat pixelFormat)
        {
            GuiHalSurface newSurface;

            switch (pixelFormat)
            {
            case GuiHalSurface.PixelFormat.PixelFormatBgra32:
                newSurface = new GuiHalSurfaceWindowsFormsDXBackend(GuiHalSurface.ImageFormats.pix_format_bgra32);
                break;

            default:
                throw new NotImplementedException();
            }

            newSurface.Init(Width, Height, flags, pixelFormat);
            return(newSurface);
        }
Example #2
0
        public override void Init(int width, int height, GuiHalSurface.CreateFlags flags, GuiHalSurface.PixelFormat pixelFormat)
        {
            //if (windowsFormsWindow.m_sys_format == PlatformSupportAbstract.ImageFormats.pix_format_undefined)
            {
                //  return false;
            }

            m_window_flags = flags;

            initialWidth  = width;
            initialHeight = height;

            int bitDepth = GetBitDepthForPixelFormat(m_format);

            switch (bitDepth)
            {
            case 24:
                backBuffer = new ImageBuffer(initialWidth, initialHeight, 24, new BlenderBGR());
                break;

            case 32:
                backBuffer = new ImageBuffer(initialWidth, initialHeight, 32, new BlenderBGRA());
                break;

            case 128:
                throw new NotImplementedException();
            //backBuffer = null;
            //m_BackBufferFloat = new ImageBufferFloat(initialWidth, initialHeight, 128, new BlenderBGRAFloat());
            //break;

            default:
                throw new NotImplementedException("Don't support this bit depth yet.");
            }

            System.Drawing.Size clientSize = new System.Drawing.Size();
            clientSize.Width              = (int)width;
            clientSize.Height             = (int)height;
            windowsFormsWindow.ClientSize = clientSize;

            if ((m_window_flags & CreateFlags.Resizable) == 0)
            {
                windowsFormsWindow.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
                windowsFormsWindow.MaximizeBox     = false;
            }

            clientSize.Width              = width;
            clientSize.Height             = height;
            windowsFormsWindow.ClientSize = clientSize;

            Bounds = new rect_d(0, 0, width, height);

            OnInitialize();
            windowsFormsWindow.m_WindowContentNeedsRedraw = true;
        }