add USVFB NEWGAL engine

This commit is contained in:
Vincent Wei
2018-07-29 20:54:28 +08:00
parent 4db2aa093c
commit 8b73fe0022
9 changed files with 694 additions and 3 deletions
+21 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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;
+3
View File
@@ -0,0 +1,3 @@
mg_add_all_source_files()
mg_commit_source_files()
+12
View File
@@ -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
+5
View File
@@ -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
+5
View File
@@ -0,0 +1,5 @@
abs_top_srcdir=../../..
include Makefile.am
include ../../../rules.make
File diff suppressed because it is too large Load Diff
+95
View File
@@ -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 */