Esempio n. 1
0
        public void Start()
        {
            if (Running)
            {
                return;
            }
            Running = true;

            ConfigManager.LoadConfigAsync().ContinueWith((Task loadTask) =>
            {
                Logger.Log("Config loaded successfully");

                ConfigManager.SaveConfigAsync().ContinueWith((Task saveTask) => {
                    Logger.Log("Config saved");
                });

                WallpaperRenderer.Initialize();

                ThreadManager.Run(InputThread      = new InputThread(UpdateInput));
                ThreadManager.Run(BrowserThread    = new BrowserThread(BrowserInit));
                ThreadManager.Run(WallpaperThread  = new RenderThread(RenderInit));
                ThreadManager.Run(ControllerThread = new ControllerThread(ControllerInit));
            });

            while (Running)
            {
                System.Threading.Thread.Sleep(1);
            }
            ;
        }
Esempio n. 2
0
 public void Dispose()
 {
     TaskbarController.Dispose();
     WallpaperRenderer.Dispose();
     BrowserManager.Dispose();
     ThreadManager.StopAll();
 }
Esempio n. 3
0
        public bool Draw(WallpaperRenderer renderer, IntPtr hdc, IntPtr memDc)
        {
            if (!BrowserManager.Browser.ShouldDraw)
            {
                return(false);
            }

            BrowserManager.Browser.ShouldDraw = false;

            Size wallpaperSize = renderer.ScreenManager.WallpaperSize;

            if (!BrowserManager.Browser.Size.Equals(wallpaperSize))
            {
                BrowserManager.Browser.Size = wallpaperSize;
            }

            Bitmap bitmap = BrowserManager.Browser.GetRenderData();

            if (bitmap == null)
            {
                if (lastRenderData != null)
                {
                    bitmap = lastRenderData;
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                lastRenderData?.Dispose();
            }

            IntPtr hBitmap = bitmap.GetHbitmap();

            NativeWin32.SelectObject(memDc, hBitmap);

            Point offset = renderer.ScreenManager.WallpaperOffset;

            bool flag = NativeWin32.BitBlt(hdc,
                                           offset.X, offset.Y,
                                           wallpaperSize.Width, wallpaperSize.Height,
                                           memDc,
                                           0, 0,
                                           NativeWin32.TernaryRasterOperations.SRCCOPY);

            NativeWin32.DeleteObject(hBitmap);

            lastRenderData = bitmap;

            return(flag);
        }
Esempio n. 4
0
        public WebWallpaper(ConfigEntry defaultConfig)
        {
            MainThread = System.Threading.Thread.CurrentThread;

            DataStorage = new DataStorage()
            {
                DataDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "web-wallpaper")
            };

            ConfigManager     = new ConfigManager(DataStorage, defaultConfig);
            ThreadManager     = new ThreadManager();
            InputManager      = new InputManager();
            BrowserManager    = new BrowserManager(InputManager);
            WallpaperRenderer = new WallpaperRenderer(this);
            TaskbarController = new TaskbarController(this);

            Running = false;
        }
Esempio n. 5
0
        public void RenderInit()
        {
            Logger.Log("Rendering thread started");

            WallpaperRenderer.Run();
        }