Exemplo n.º 1
0
        //
        // Release
        //

        public void Release()
        {
            lock (RendererObjects)
            {
                for (int i = RendererObjects.Count; i-- > 0;)
                {
                    if (RendererObjects[i].renderer == this)
                    {
                        RendererObjects[i].renderer.surface = null;
                        RendererObjects[i].renderer         = null;
                        RendererObjects.RemoveAt(i);
                    }
                }
            }
        }
Exemplo n.º 2
0
        //
        // Create
        //

        public static IntPtr Create(android.app.Activity activity, Action onChanged,
                                    int redSize, int greenSize, int blueSize,
                                    int alphaSize, int depthSize, int stencilSize,
                                    int swapInterval, bool checkErrors)
        {
            for (;;)
            {
                lock (RendererObjects)
                {
                    var deviceId = java.lang.System.nanoTime();

                    foreach (var oldRendererObject in RendererObjects)
                    {
                        if (oldRendererObject.deviceId == deviceId)
                        {
                            deviceId = 0;
                            break;
                        }
                    }

                    if (deviceId == 0)
                    {
                        java.lang.Thread.sleep(1);
                        continue;
                    }

                    RendererObjects.Insert(0, new RendererObject()
                    {
                        deviceId = deviceId,
                        renderer = new Renderer(activity, onChanged,
                                                redSize, greenSize, blueSize,
                                                alphaSize, depthSize, stencilSize,
                                                swapInterval, checkErrors),
                        activity = new [email protected](activity),
                    });

                    return((IntPtr)deviceId);
                }
            }
        }