mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-10 08:38:20 +00:00
ba6f26393f
This commit fixes the issues with the meaning of useNearest being flipped by removing the variable and use enumerations. We define an enumeration EGL_DesktopScaleType to express the type of scaling needed to be performed: no scaling, upscaling, or downscaling. This is updated when either the frame size or the viewport size changes. Previously, we only updated the useNearest when the frame size changes. The desktop shader can now support an enumeration of scaling algorithms, although only nearest and linear are currently implemented. Like before, nearest is used when not scaling or upscaling, and linear is used when downscaling.
43 lines
1.5 KiB
C
43 lines
1.5 KiB
C
/*
|
|
Looking Glass - KVM FrameRelay (KVMFR) Client
|
|
Copyright (C) 2017-2019 Geoffrey McRae <geoff@hostfission.com>
|
|
https://looking-glass.hostfission.com
|
|
|
|
This program is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free Software
|
|
Foundation; either version 2 of the License, or (at your option) any later
|
|
version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "interface/renderer.h"
|
|
|
|
typedef struct EGL_Desktop EGL_Desktop;
|
|
|
|
enum EGL_DesktopScaleType
|
|
{
|
|
EGL_DESKTOP_NOSCALE,
|
|
EGL_DESKTOP_UPSCALE,
|
|
EGL_DESKTOP_DOWNSCALE,
|
|
};
|
|
|
|
bool egl_desktop_init(EGL_Desktop ** desktop, EGLDisplay * display);
|
|
void egl_desktop_free(EGL_Desktop ** desktop);
|
|
|
|
bool egl_desktop_setup (EGL_Desktop * desktop, const LG_RendererFormat format, bool useDMA);
|
|
bool egl_desktop_update(EGL_Desktop * desktop, const FrameBuffer * frame, int dmaFd);
|
|
bool egl_desktop_render(EGL_Desktop * desktop, const float x, const float y,
|
|
const float scaleX, const float scaleY, enum EGL_DesktopScaleType scaleType,
|
|
LG_RendererRotate rotate);
|