コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RenderTargetProperties"/> struct.
 /// </summary>
 /// <param name="type">A value that specifies whether the render target should force hardware or software rendering. A value of <see cref="SharpDX.Direct2D1.RenderTargetType.Default"/> specifies that the render target should use hardware rendering if it is available; otherwise, it uses software rendering. Note that WIC bitmap render targets do not support hardware rendering.</param>
 /// <param name="pixelFormat">The pixel format and alpha mode of the render target. You can use the {{D2D1::PixelFormat}} function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see {{Supported Pixel Formats and Alpha Modes}}.</param>
 /// <param name="dpiX">The horizontal DPI of the render target.  To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. 	</param>
 /// <param name="dpiY">The vertical DPI of the render target. To use the default DPI, set dpiX and dpiY to 0.  For more information, see the Remarks section. 	</param>
 /// <param name="usage">A value that specifies how the render target is remoted and whether it should be GDI-compatible.  Set to <see cref="SharpDX.Direct2D1.RenderTargetUsage.None"/> to create a render target that is not compatible with GDI and uses Direct3D command-stream remoting if it  is available.</param>
 /// <param name="minLevel">A value that specifies the minimum Direct3D feature level required for hardware rendering. If the specified minimum level is not available, the render target uses software rendering if the type  member is set to <see cref="SharpDX.Direct2D1.RenderTargetType.Default"/>; if  type  is set to to D2D1_RENDER_TARGET_TYPE_HARDWARE, render target creation fails. A value of <see cref="SharpDX.Direct2D1.FeatureLevel.Level_DEFAULT"/> indicates that Direct2D should determine whether the Direct3D feature level of the device is adequate. This field is used only when creating <see cref="WindowRenderTarget"/> and <see cref="DeviceContextRenderTarget"/> objects.	</param>  
 public RenderTargetProperties(RenderTargetType type, PixelFormat pixelFormat, float dpiX, float dpiY, RenderTargetUsage usage, FeatureLevel minLevel)
 {
     Type = type;
     PixelFormat = pixelFormat;
     DpiX = dpiX;
     DpiY = dpiY;
     Usage = usage;
     MinLevel = minLevel;
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RenderTargetProperties"/> struct.
 /// </summary>
 /// <param name="type">A value that specifies whether the render target should force hardware or software rendering. A value of <see cref="SharpDX.Direct2D1.RenderTargetType.Default"/> specifies that the render target should use hardware rendering if it is available; otherwise, it uses software rendering. Note that WIC bitmap render targets do not support hardware rendering.</param>
 /// <param name="pixelFormat">The pixel format and alpha mode of the render target. You can use the {{D2D1::PixelFormat}} function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see {{Supported Pixel Formats and Alpha Modes}}.</param>
 /// <param name="dpiX">The horizontal DPI of the render target.  To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section.     </param>
 /// <param name="dpiY">The vertical DPI of the render target. To use the default DPI, set dpiX and dpiY to 0.  For more information, see the Remarks section.   </param>
 /// <param name="usage">A value that specifies how the render target is remoted and whether it should be GDI-compatible.  Set to <see cref="SharpDX.Direct2D1.RenderTargetUsage.None"/> to create a render target that is not compatible with GDI and uses Direct3D command-stream remoting if it  is available.</param>
 /// <param name="minLevel">A value that specifies the minimum Direct3D feature level required for hardware rendering. If the specified minimum level is not available, the render target uses software rendering if the type  member is set to <see cref="SharpDX.Direct2D1.RenderTargetType.Default"/>; if  type  is set to to D2D1_RENDER_TARGET_TYPE_HARDWARE, render target creation fails. A value of <see cref="SharpDX.Direct2D1.FeatureLevel.Level_DEFAULT"/> indicates that Direct2D should determine whether the Direct3D feature level of the device is adequate. This field is used only when creating <see cref="WindowRenderTarget"/> and <see cref="DeviceContextRenderTarget"/> objects.	</param>
 public RenderTargetProperties(RenderTargetType type, PixelFormat pixelFormat, float dpiX, float dpiY, RenderTargetUsage usage, FeatureLevel minLevel)
 {
     Type        = type;
     PixelFormat = pixelFormat;
     DpiX        = dpiX;
     DpiY        = dpiY;
     Usage       = usage;
     MinLevel    = minLevel;
 }
コード例 #3
0
 private void createTarget(RenderTargetType targetType)
 {
     if (targetType == RenderTargetType.RENDER_BUFFER)
     {
         mRenderTarget = new RenderBuffer();
     }
     else if (targetType == RenderTargetType.RENDER_TO_TEXTURE)
     {
         mRenderTarget = new RenderTexture();
     }
 }
コード例 #4
0
        internal static RenderTarget createWrapper(IntPtr nativePtr, object[] args)
        {
            RenderTargetType type = (RenderTargetType)args[0];

            switch (type)
            {
            case RenderTargetType.RenderWindow:
                return(new RenderWindow(nativePtr));

            case RenderTargetType.RenderTexture:
                return(new RenderTexture(nativePtr));

            case RenderTargetType.MultiRenderTarget:
                throw new NotImplementedException();

            default:
                throw new NotImplementedException();
            }
        }
コード例 #5
0
        public RenderTarget CreateRenderTarget(SharpDX.Direct2D1.FeatureLevel PFeatureLevel, PixelFormat PPixelFormat, RenderTargetType PRenderTargetType, RenderTargetUsage PRenderTargetUsage, Surface PBackBuffer, FactoryD2D PFactory)
        {
            this._FeatureLevel = PFeatureLevel;
            this._PixelFormat = PPixelFormat;
            this._RenderType = PRenderTargetType;
            this._RenderUsage = PRenderTargetUsage;
            _DPI = PFactory.DesktopDpi;

            _RenderTarget = new RenderTarget(PFactory, PBackBuffer, new RenderTargetProperties()
            {
                DpiX = _DPI.Width,
                DpiY = _DPI.Height,
                MinLevel = _FeatureLevel,
                PixelFormat = _PixelFormat,
                Type = _RenderType,
                Usage= _RenderUsage

            });

            return _RenderTarget;
        }
コード例 #6
0
        public void Create(int width, int height, RenderTargetType targetType)
        {
            mFrameWidth  = width;
            mFrameHeight = height;
            createTarget(targetType);

            gl2.GenFramebuffers(1, ref mFrameBuffer);
            gl2.BindFramebuffer(gl2.GL_FRAMEBUFFER, mFrameBuffer);
            gl2.GenRenderbuffers(1, ref mRenderTarget.mDepthBuffer);
            gl2.BindRenderbuffer(gl2.GL_RENDERBUFFER, mRenderTarget.mDepthBuffer);
            gl2.RenderbufferStorage(gl2.GL_RENDERBUFFER, gl2.GL_DEPTH_COMPONENT16, width, height);
            gl2.FramebufferRenderbuffer(gl2.GL_FRAMEBUFFER, gl2.GL_DEPTH_ATTACHMENT, gl2.GL_RENDERBUFFER, mRenderTarget.mDepthBuffer);

            if (targetType == RenderTargetType.RENDER_BUFFER)
            {
                RenderBuffer dt = mRenderTarget as RenderBuffer;
                gl2.GenRenderbuffers(1, ref dt.mRenderBuffer);
                gl2.BindRenderbuffer(gl2.GL_TEXTURE_2D, dt.mRenderBuffer);
                gl2.RenderbufferStorage(gl2.GL_RENDERBUFFER, gl2ext.GL_RGBA8_OES, width, height);
                gl2.FramebufferRenderbuffer(gl2.GL_FRAMEBUFFER, gl2.GL_COLOR_ATTACHMENT0, gl2.GL_RENDERBUFFER, dt.mRenderBuffer);
            }
            else
            {
                RenderTexture dt = mRenderTarget as RenderTexture;
                gl2.GenTextures(1, ref dt.mTextureBuffer);
                gl2.BindTexture(gl2.GL_TEXTURE_2D, dt.mTextureBuffer);
                gl2.TexParameter(gl2.GL_TEXTURE_2D, gl2.GL_TEXTURE_MIN_FILTER, gl2.GL_LINEAR);
                gl2.TexParameter(gl2.GL_TEXTURE_2D, gl2.GL_TEXTURE_MAG_FILTER, gl2.GL_LINEAR);
                gl2.TexParameter(gl2.GL_TEXTURE_2D, gl2.GL_TEXTURE_WRAP_S, gl2.GL_CLAMP_TO_EDGE);
                gl2.TexParameter(gl2.GL_TEXTURE_2D, gl2.GL_TEXTURE_WRAP_T, gl2.GL_CLAMP_TO_EDGE);
                gl2.TexImage2D(gl2.GL_TEXTURE_2D, 0, gl2.GL_RGBA, width, height, 0, gl2.GL_RGBA, gl2.GL_UNSIGNED_BYTE, null);
                gl2.FramebufferTexture2D(gl2.GL_FRAMEBUFFER, gl2.GL_COLOR_ATTACHMENT0, gl2.GL_TEXTURE_2D, dt.mTextureBuffer, 0);
            }

            mBufferPixels = new byte[width * height * 4];
            gl2.GetInteger(gl2.GL_IMPLEMENTATION_COLOR_READ_TYPE, ref mBufferType);
            gl2.GetInteger(gl2.GL_IMPLEMENTATION_COLOR_READ_FORMAT, ref mBufferFormat);
            gl2.BindFramebuffer(gl2.GL_FRAMEBUFFER, 0);
        }
コード例 #7
0
        public RenderTarget CreateRenderTarget(SharpDX.Direct2D1.FeatureLevel PFeatureLevel, PixelFormat PPixelFormat, RenderTargetType PRenderTargetType, RenderTargetUsage PRenderTargetUsage, Surface PBackBuffer, FactoryD2D PFactory)
        {
            this._FeatureLevel = PFeatureLevel;
            this._PixelFormat  = PPixelFormat;
            this._RenderType   = PRenderTargetType;
            this._RenderUsage  = PRenderTargetUsage;
            _DPI = PFactory.DesktopDpi;

            _RenderTarget = new RenderTarget(PFactory, PBackBuffer, new RenderTargetProperties()
            {
                DpiX        = _DPI.Width,
                DpiY        = _DPI.Height,
                MinLevel    = _FeatureLevel,
                PixelFormat = _PixelFormat,
                Type        = _RenderType,
                Usage       = _RenderUsage
            });

            return(_RenderTarget);
        }