mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-25 19:13:46 +08:00
add USVFB NEWGAL engine
This commit is contained in:
+21
-1
@@ -253,6 +253,7 @@ enable_video_pc_xvfb="yes"
|
||||
enable_video_rtos_xvfb="no"
|
||||
enable_video_qvfb="no"
|
||||
enable_video_wvfb="no"
|
||||
enable_video_usvfb="no"
|
||||
enable_video_dfb="no"
|
||||
enable_video_dfb_st7167="no"
|
||||
enable_video_stgfb="no"
|
||||
@@ -908,7 +909,7 @@ dnl Check Windows Virtual FrameBuffer
|
||||
CheckWVFB()
|
||||
{
|
||||
AC_ARG_ENABLE(videowvfb,
|
||||
[ --enable-videowvfb include Windows Virtual FrameBuffer NEWGAL engine <default=no>],
|
||||
[ --enable-videowvfb include Windows Virtual Frame Buffer NEWGAL engine <default=no>],
|
||||
enable_video_wvfb=$enableval)
|
||||
|
||||
if test "x$enable_video_wvfb" = "xyes"; then
|
||||
@@ -920,6 +921,23 @@ CheckWVFB()
|
||||
fi
|
||||
}
|
||||
|
||||
dnl Set up the UnixSocket virtual Frame Buffer video driver.
|
||||
CheckUSVFB()
|
||||
{
|
||||
AC_ARG_ENABLE(videousvfb,
|
||||
[ --enable-videousvfb include NEWGAL/IAL engines for UnixSocket Virtual Frame Buffer <default=no>],
|
||||
enable_video_usvfb=$enableval)
|
||||
|
||||
if test "x$enable_video_usvfb" = "xyes"; then
|
||||
AC_DEFINE(_MGIAL_USVFB, 1,
|
||||
[Define if include IAL engine for UnixSocket Virtual Frame Buffer])
|
||||
AC_DEFINE(_MGGAL_USVFB, 1,
|
||||
[Define if include NEWGAL engine for UnixSocket Virtual Frame Buffer])
|
||||
VIDEO_SUBDIRS="$VIDEO_SUBDIRS usvfb"
|
||||
VIDEO_DRIVERS="$VIDEO_DRIVERS usvfb/libvideo_usvfb.la"
|
||||
fi
|
||||
}
|
||||
|
||||
dnl Set up the Common LCD video driver.
|
||||
CheckCOMMLCD()
|
||||
{
|
||||
@@ -1280,6 +1298,7 @@ dnl Checks NewGAL Engine.
|
||||
CheckQVFB
|
||||
CheckXVFB
|
||||
CheckWVFB
|
||||
CheckUSVFB
|
||||
CheckCOMMLCD
|
||||
CheckShadowVideo
|
||||
CheckMLShadowVideo
|
||||
@@ -2505,6 +2524,7 @@ src/newgal/sigma8654/Makefile
|
||||
src/newgal/mstar/Makefile
|
||||
src/newgal/gdl/Makefile
|
||||
src/newgal/stgfb/Makefile
|
||||
src/newgal/usvfb/Makefile
|
||||
src/ial/Makefile
|
||||
src/ial/native/Makefile
|
||||
src/ial/netial/Makefile
|
||||
|
||||
@@ -8,7 +8,7 @@ noinst_LTLIBRARIES = libnewgal.la
|
||||
SUBDIRS = @VIDEO_SUBDIRS@
|
||||
DIST_SUBDIRS = dummy fbcon qvfb wvfb em85xxyuv em85xxosd svpxxosd bf533 utpmc \
|
||||
mb93493 commlcd shadow mlshadow dfb em86gfx hisi rtos_xvfb pcxvfb \
|
||||
nexus s3c6410 sigma8654 mstar gdl stgfb
|
||||
nexus s3c6410 sigma8654 mstar gdl stgfb usvfb
|
||||
# x11 dga vgl svga ggi aalib
|
||||
|
||||
EXTRA_DIST=makefile.ng makefile.msvc
|
||||
|
||||
@@ -292,7 +292,7 @@ static GAL_Surface *COMMLCD_SetVideoMode(_THIS, GAL_Surface *current,
|
||||
pthread_create (&this->hidden->update_th, &new_attr,
|
||||
task_do_update, this);
|
||||
pthread_attr_destroy (&new_attr);
|
||||
pthread_mutex_init(&this->hidden->update_lock, NULL)
|
||||
pthread_mutex_init (&this->hidden->update_lock, NULL);
|
||||
}
|
||||
else {
|
||||
this->hidden->update_th = 0;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
mg_add_all_source_files()
|
||||
mg_commit_source_files()
|
||||
@@ -0,0 +1,12 @@
|
||||
AM_CPPFLAGS = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include \
|
||||
-I$(abs_top_srcdir)/src/newgal/
|
||||
|
||||
SRC_FILES = usvfb.c
|
||||
HDR_FILES = usvfb.h
|
||||
|
||||
noinst_LTLIBRARIES = libvideo_usvfb.la
|
||||
libvideo_usvfb_la_SOURCES = $(SRC_FILES) $(HDR_FILES)
|
||||
|
||||
EXTRA_DIST=makefile.ng makefile.msvc
|
||||
|
||||
LIB_NAME=libvideo_usvfb
|
||||
@@ -0,0 +1,5 @@
|
||||
# Makefile defines for building the MiniGUI DLL with Microsoft VC
|
||||
|
||||
!INCLUDE Makefile.am
|
||||
!INCLUDE ..\..\..\build\Defs.win32
|
||||
!INCLUDE ..\..\..\build\makedefs.msvc
|
||||
@@ -0,0 +1,5 @@
|
||||
abs_top_srcdir=../../..
|
||||
|
||||
include Makefile.am
|
||||
include ../../../rules.make
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* This file is part of MiniGUI, a mature cross-platform windowing
|
||||
* and Graphics User Interface (GUI) support system for embedded systems
|
||||
* and smart IoT devices.
|
||||
*
|
||||
* Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd.
|
||||
* Copyright (C) 1998~2002, WEI Yongming
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Or,
|
||||
*
|
||||
* As this program is a library, any link to this program must follow
|
||||
* GNU General Public License version 3 (GPLv3). If you cannot accept
|
||||
* GPLv3, you need to be licensed from FMSoft.
|
||||
*
|
||||
* If you have got a commercial license of this program, please use it
|
||||
* under the terms and conditions of the commercial license.
|
||||
*
|
||||
* For more information about the commercial license, please refer to
|
||||
* <http://www.minigui.com/en/about/licensing-policy/>.
|
||||
*/
|
||||
|
||||
#ifndef _GAL_USVFB_H
|
||||
#define _GAL_USVFB_H
|
||||
|
||||
#include "sysvideo.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* Hidden "this" pointer for the video functions */
|
||||
#define _THIS GAL_VideoDevice *this
|
||||
|
||||
/* Private display data */
|
||||
struct GAL_PrivateVideoData {
|
||||
int w, h, pitch;
|
||||
void *fb;
|
||||
|
||||
int fd_socket;
|
||||
|
||||
int dirty;
|
||||
RECT rc_dirty;
|
||||
pthread_t update_th;
|
||||
pthread_mutex_t update_lock;
|
||||
};
|
||||
|
||||
/* The pixel format defined by depth */
|
||||
#define USVFB_PSEUDO_RGB332 1
|
||||
#define USVFB_TRUE_RGB555 2
|
||||
#define USVFB_TRUE_RGB565 3
|
||||
#define USVFB_TRUE_RGB888 4
|
||||
#define USVFB_TRUE_RGB0888 5
|
||||
#define USVFB_TRUE_ARGB1555 6
|
||||
#define USVFB_TRUE_ARGB8888 7
|
||||
|
||||
struct _vfb_info {
|
||||
short height; // vertical resolution of the screen
|
||||
short width; // horinzontal resolution of the screen
|
||||
short bpp; // Depth (bits-per-pixel)
|
||||
short type; // Pixel type
|
||||
short rlen; // Length of one scan line in bytes
|
||||
void *fb; // Frame buffer
|
||||
|
||||
short async_update; // update asynchronously or synchronously. 0 for synchronously; others for asynchronously.
|
||||
};
|
||||
|
||||
#define USS_PATH "/var/tmp/web-display-server"
|
||||
#define USC_PATH "/var/tmp/web-display-client-P%d"
|
||||
|
||||
#define USC_PERM S_IRWXU /* rwx for user only */
|
||||
|
||||
#define FT_VFBINFO 10
|
||||
#define FT_PING 11
|
||||
#define FT_PONG 12
|
||||
#define FT_EVENT 13
|
||||
#define FT_DIRTYPIXELS 14
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* _GAL_USVFB_H */
|
||||
Reference in New Issue
Block a user