Exemple #1
0
        private static IntPtr Create(uint width, uint height, TextureRenderCallback callback, object user)
        {
            int callbackId = CallbackId++;

            _callbacks[callbackId] = callback;
            IntPtr userPtr = Noesis.Extend.GetInstanceHandle(user).Handle;

            return(DynamicTextureSource_Create(width, height, callbackId, _removeCallback, _renderCallback, userPtr));
        }
Exemple #2
0
 private static IntPtr OnTextureRender(int callbackId, IntPtr devicePtr, IntPtr userPtr)
 {
     try {
         if (Noesis.Extend.Initialized)
         {
             TextureRenderCallback callback = _callbacks[callbackId];
             RenderDevice          device   = (RenderDevice)Noesis.Extend.GetProxy(devicePtr, false);
             object  user    = Noesis.Extend.GetProxy(userPtr, false);
             Texture texture = callback(device, user);
             return(Noesis.Extend.GetInstanceHandle(texture).Handle);
         }
     }
     catch (Exception e) {
         Error.UnhandledException(e);
     }
     return(IntPtr.Zero);
 }
Exemple #3
0
 public DynamicTextureSource(uint width, uint height, TextureRenderCallback callback, object user) :
     base(Create(width, height, callback, user), true)
 {
 }