예제 #1
0
// Allows a rendertexture to be passed in
    public SFMovieCreationParams(String name, int ox, int oy, int width, int height,
        IntPtr pdata, int length, bool initFirstFrame, RenderTexture texture, Color32 bgColor, 
		bool useBackgroundColor = false, ScaleModeType scaleModeType = ScaleModeType.SM_ShowAll, bool bAutoManageVP = true):
       this(name, ox, oy, width, height, pdata, length, initFirstFrame, bgColor, useBackgroundColor, scaleModeType, bAutoManageVP)
	   {
        IsRenderToTexture    = (texture != null);
        TexWidth            = ((texture != null) ? (UInt32)texture.width : 0);
        TexHeight           = ((texture != null) ? (UInt32)texture.height : 0);

#if (UNITY_4_0) || (UNITY_4_1)
        if (texture)
        {
#if UNITY_IPHONE
            TextureId = (uint)texture.GetNativeTextureID();
#else
            IntPtr texPtr = texture.GetNativeTexturePtr();
            TextureId = (uint)(texPtr);
#endif //UNITY_IPHONE
        }
        else
        {
            TextureId = 0;
        }
#else
        TextureId = ((texture != null) ? (UInt32)texture.GetNativeTextureID() : 0);
#if UNITY_STANDALONE_WIN
        if (SystemInfo.graphicsDeviceVersion[0] == 'D')
        {
            // SystemInfo.graphicsDeviceVersion starts with either "Direct3D" or "OpenGL".
            // We need to disable RTT on D3D+Windows because GetNativeTextureID() returns 
            // a garbage value in D3D mode instead of zero, even though 
            // GetNativeTextureID() is only supported in OpenGL mode.
            TextureId = 0;
            IsRenderToTexture = false;
            TexWidth = 0;
            TexHeight = 0;
        }
#endif //UNITY_STANDALONE_WIN
#endif //(UNITY_4_0) || (UNITY_4_1)

    //  pData = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(System.IntPtr)));
    //  Marshal.WriteIntPtr(pData, pdata);
    }
예제 #2
0
 public override void PostRender(RenderTexture stereoScreen) {
   SetTextureId((int)stereoScreen.GetNativeTexturePtr());
   GL.IssuePluginEvent(kRenderEvent);
 }
예제 #3
0
 public override void GetFrameData(RenderTexture rt, int frame)
 {
     fcAPI.fcGifGetFrameData(m_ctx, rt.GetNativeTexturePtr(), frame);
 }
예제 #4
0
        void OnRenderImage(RenderTexture source, RenderTexture destination)
        {
            var linear = QualitySettings.activeColorSpace == ColorSpace.Linear;

            // Screen blit
            if (_renderMode == RenderMode.PreviewOnGameView && linear)
                Graphics.Blit(source, destination, gammaMaterial, 0);
            else if (_renderMode != RenderMode.SendOnly)
                Graphics.Blit(source, destination);

            // Publish the content of the source buffer.
            SetSourceFrame(
                _slotIndex, gameObject.name,
                source.GetNativeTexturePtr(), source.width, source.height,
                linear, _discardAlpha);

            InvokePublishEvent(_slotIndex);
        }
예제 #5
0
파일: Funnel.cs 프로젝트: silky/Funnel
        void OnRenderImage(RenderTexture source, RenderTexture destination)
        {
            if (_slotIndex >= 0 && _renderTexture)
            {
            if (Application.isEditor || _renderMode != RenderMode.SendOnly)
            {
                // Blit and publish.
                Graphics.Blit(source, destination);
                FunnelSetFrameTexture(
                    _slotIndex,
                    gameObject.name,
                    (int)destination.GetNativeTexturePtr(),
                    screenWidth, screenHeight,
                    _renderTexture.sRGB, !_alphaChannel
                );
            }
            else
            {
                // Publish only.
                FunnelSetFrameTexture(
                    _slotIndex,
                    gameObject.name,
                    (int)source.GetNativeTexturePtr(),
                    screenWidth, screenHeight,
                    _renderTexture.sRGB, !_alphaChannel
                );
            }

            // Push a plugin event to publish the screen.
            GL.IssuePluginEvent(PublishEventID + _slotIndex);
            }
            else
            {
            // Resources are not ready: just blit.
            Graphics.Blit(source, destination);
            }
        }
예제 #6
0
 //set the render texture that this camera will render into
 //pass the native hardware pointer to the UnityRenderingPlugin for use in RenderManager
 public void SetRenderTexture(RenderTexture rt)
 {
     RenderToTexture = rt;
     Camera.targetTexture = RenderToTexture;
     RenderTexture.active = RenderToTexture;
     
     //Set the native texture pointer so we can access this texture from the plugin
     Eye.Viewer.DisplayController.RenderManager.SetEyeColorBuffer(RenderToTexture.GetNativeTexturePtr(), (int)Eye.EyeIndex);
 }
예제 #7
0
 public static bool Write(RenderTexture dst_tex, IntPtr src, int src_num, tDataFormat src_fmt)
 {
     return tWriteTexture(
         dst_tex.GetNativeTexturePtr(), dst_tex.width, dst_tex.height,
         GetTextureFormat(dst_tex), src, src_num, src_fmt) != 0;
 }
예제 #8
0
 public static int fcExrAddLayerTexture(fcEXRContext ctx, RenderTexture tex, int ch, string name, int id)
 {
     return fcExrAddLayerTextureDeferred(ctx, tex.GetNativeTexturePtr(), fcGetPixelFormat(tex.format), ch, name, false, id);
 }
예제 #9
0
 public static int fcPngExportTexture(fcPNGContext ctx, string path, RenderTexture tex, int pos)
 {
     return fcPngExportTextureDeferred(ctx, path,
         tex.GetNativeTexturePtr(), tex.width, tex.height, fcGetPixelFormat(tex.format), false, pos);
 }
예제 #10
0
 public static int fcMP4AddVideoFrameTexture(fcMP4Context ctx, RenderTexture tex, double time, int id)
 {
     return fcMP4AddVideoFrameTextureDeferred(ctx, tex.GetNativeTexturePtr(), fcGetPixelFormat(tex.format), time, id);
 }
예제 #11
0
 public static int fcGifAddFrameTexture(fcGIFContext ctx, RenderTexture tex, bool keyframe, double timestamp, int id)
 {
     return fcGifAddFrameTextureDeferred(ctx, tex.GetNativeTexturePtr(), fcGetPixelFormat(tex.format), keyframe, timestamp, id);
 }