commit 5d92acec4e8f8ddcc37eeb20b3cd85fe05be8f23 Author: Randy Li Date: Thu Jul 14 18:47:17 2016 +0800 first commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..101dc85 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +all: + +install: + install -d -m 755 $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH) + install -D -m 644 lib/*.so $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH) + install -d -m 755 $(DESTDIR)/usr/include/ + install -D -m 644 include/*.h $(DESTDIR)/usr/include/ + install -d -m 755 $(DESTDIR)/usr/lib/pkgconfig/ + install -D -m 644 pkgconfig/*.pc $(DESTDIR)/usr/lib/pkgconfig/ + +.PHONY: install diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..f72fb7d --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,6 @@ +libmail-rk3288 for Debian +------------------------- + + + + -- Randy Li Thu, 14 Jul 2016 08:01:25 +0000 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..1362cc2 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,10 @@ +libmail-rk3288 for Debian +------------------------- + + + + + + -- Randy Li Thu, 14 Jul 2016 08:01:25 +0000 + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..dfdb818 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +libmali-rk3288 (1.4-1) unstable; urgency=low + + * The binary files comes from graphics department. + + -- Randy Li Thu, 14 Jul 2016 08:01:25 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..98eb561 --- /dev/null +++ b/debian/control @@ -0,0 +1,29 @@ +Source: libmali-rk3288 +Priority: optional +Maintainer: Randy Li +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.5 +Section: libs +Homepage: http://www.rock-chips.com/ + +Package: libmali-rk3288-dev +Section: libdevel +Architecture: any +Depends: libmali-rk32881 (= ${binary:Version}), ${misc:Depends} +Multi-Arch: same +Provides: libgbm-dev +Conflicts: libgbm-dev +Replaces: libgbm-dev +Description: The mali library for Rockchip RK3288. + . + This package provides the development environment for compiling programs + against the GBM library. + +Package: libmali-rk32881 +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Multi-Arch: same +Provides: libegl1, libegl1-x11, libgles2-mesa, libgbm1 +Conflicts: libegl1-mesa, libegl1-x11, libgles2-mesa, libgbm1 +Replaces: libegl1-mesa, libegl1-x11, libgles2-mesa, libgbm1 +Description: The mali library for Rockchip RK3288. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..6416300 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,38 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libmail-rk3288 +Source: + +Files: * +Copyright: + +License: + + + . + + +# If you want to use GPL v2 or later for the /debian/* files use +# the following clauses, or change it to suit. Delete these two lines +Files: debian/* +Copyright: 2016 Randy Li +License: GPL-2+ + This package 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 package 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 + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +# Please also look if there are files or directories which have a +# different copyright/license attached and list them here. +# Please avoid to pick license terms that are more restrictive than the +# packaged work, as it may make Debian's contributions unacceptable upstream. diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..e69de29 diff --git a/debian/libmali-rk3288-dev.dirs b/debian/libmali-rk3288-dev.dirs new file mode 100644 index 0000000..4418816 --- /dev/null +++ b/debian/libmali-rk3288-dev.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/include diff --git a/debian/libmali-rk3288-dev.install b/debian/libmali-rk3288-dev.install new file mode 100755 index 0000000..5bdb65d --- /dev/null +++ b/debian/libmali-rk3288-dev.install @@ -0,0 +1,3 @@ +#! /usr/bin/dh-exec +usr/include/* +usr/lib/pkgconfig/* diff --git a/debian/libmali-rk3288-dev.links b/debian/libmali-rk3288-dev.links new file mode 100755 index 0000000..ec83ff3 --- /dev/null +++ b/debian/libmali-rk3288-dev.links @@ -0,0 +1,5 @@ +#! /usr/bin/dh-exec +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libgbm.so +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libgbm.so.1 +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libgbm.so.1.0.0 + diff --git a/debian/libmali-rk32881.dirs b/debian/libmali-rk32881.dirs new file mode 100644 index 0000000..6845771 --- /dev/null +++ b/debian/libmali-rk32881.dirs @@ -0,0 +1 @@ +usr/lib diff --git a/debian/libmali-rk32881.install b/debian/libmali-rk32881.install new file mode 100755 index 0000000..dc2b23e --- /dev/null +++ b/debian/libmali-rk32881.install @@ -0,0 +1,2 @@ +#! /usr/bin/dh-exec +usr/lib/*/libmali.so diff --git a/debian/libmali-rk32881.links b/debian/libmali-rk32881.links new file mode 100755 index 0000000..ef6ac13 --- /dev/null +++ b/debian/libmali-rk32881.links @@ -0,0 +1,5 @@ +#! /usr/bin/dh-exec +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libEGL.so.1 +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libEGL.so.1.0.0 +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libGLESv2.so.2 +usr/lib/${DEB_HOST_MULTIARCH}/libmali.so usr/lib/${DEB_HOST_MULTIARCH}/libGLESv2.so.2.0.0 diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..478ba28 --- /dev/null +++ b/debian/rules @@ -0,0 +1,35 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +DH_VERBOSE = 1 + +# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +# see FEATURE AREAS in dpkg-buildflags(1) +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + +# main packaging script based on dh7 syntax +%: + dh $@ + +# debmake generated override targets +# This is example for Cmake (See http://bugs.debian.org/641051 ) +#override_dh_auto_configure: +# dh_auto_configure -- \ +# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) +override_dh_auto_link: + dh_link --package=libmali-rk3288-dev \ + usr/lib/$(DEB_HOST_MULTIARCH)/libmali.so usr/lib/$(DEB_HOST_MULTIARCH)/libgbm.so.1 + dh_link --package=libmali-rk3288-dev \ + usr/lib/$(DEB_HOST_MULTIARCH)/libmali.so usr/lib/$(DEB_HOST_MULTIARCH)/libgbm.so + dh_link --package=libmali-rk3288-dev \ + usr/lib/$(DEB_HOST_MULTIARCH)/libmali.so usr/lib/$(DEB_HOST_MULTIARCH)/libgbm.so.1.0.0 diff --git a/debian/shlibs.local.ex b/debian/shlibs.local.ex new file mode 100644 index 0000000..a3d15b6 --- /dev/null +++ b/debian/shlibs.local.ex @@ -0,0 +1 @@ +liblibmail-rk3288 1.4 libmail-rk3288 (>> 1.4-0), libmail-rk3288 (<< 1.4-99) diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch.ex b/debian/watch.ex new file mode 100644 index 0000000..74671a7 --- /dev/null +++ b/debian/watch.ex @@ -0,0 +1,23 @@ +# Example watch control file for uscan +# Rename this file to "watch" and then you can run the "uscan" command +# to check for upstream updates and more. +# See uscan(1) for format + +# Compulsory line, this is a version 3 file +version=3 + +# Uncomment to examine a Webpage +# +#http://www.example.com/downloads.php libmail-rk3288-(.*)\.tar\.gz + +# Uncomment to examine a Webserver directory +#http://www.example.com/pub/libmail-rk3288-(.*)\.tar\.gz + +# Uncommment to examine a FTP server +#ftp://ftp.example.com/pub/libmail-rk3288-(.*)\.tar\.gz debian uupdate + +# Uncomment to find new files on sourceforge, for devscripts >= 2.9 +# http://sf.net/libmail-rk3288/libmail-rk3288-(.*)\.tar\.gz + +# Uncomment to find new files on GooglePages +# http://example.googlepages.com/foo.html libmail-rk3288-(.*)\.tar\.gz diff --git a/include/gbm.h b/include/gbm.h new file mode 100644 index 0000000..90f3e13 --- /dev/null +++ b/include/gbm.h @@ -0,0 +1,315 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Authors: + * Benjamin Franzke + */ + +#ifndef _GBM_H_ +#define _GBM_H_ + +#ifdef __cplusplus +extern "C" { +#endif + + +#define __GBM__ 1 + +#include + +/** + * \file gbm.h + * \brief Generic Buffer Manager + */ + +struct gbm_device; +struct gbm_bo; +struct gbm_surface; + +/** + * \mainpage The Generic Buffer Manager + * + * This module provides an abstraction that the caller can use to request a + * buffer from the underlying memory management system for the platform. + * + * This allows the creation of portable code whilst still allowing access to + * the underlying memory manager. + */ + +/** + * Abstraction representing the handle to a buffer allocated by the + * manager + */ +union gbm_bo_handle { + void *ptr; + int32_t s32; + uint32_t u32; + int64_t s64; + uint64_t u64; +}; + +/** Format of the allocated buffer */ +enum gbm_bo_format { + /** RGB with 8 bits per channel in a 32 bit value */ + GBM_BO_FORMAT_XRGB8888, + /** ARGB with 8 bits per channel in a 32 bit value */ + GBM_BO_FORMAT_ARGB8888 +}; + +#define __gbm_fourcc_code(a,b,c,d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | \ + ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) + +#define GBM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */ + +/* color index */ +#define GBM_FORMAT_C8 __gbm_fourcc_code('C', '8', ' ', ' ') /* [7:0] C */ + +/* 8 bpp RGB */ +#define GBM_FORMAT_RGB332 __gbm_fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */ +#define GBM_FORMAT_BGR233 __gbm_fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */ + +/* 16 bpp RGB */ +#define GBM_FORMAT_XRGB4444 __gbm_fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */ +#define GBM_FORMAT_XBGR4444 __gbm_fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */ +#define GBM_FORMAT_RGBX4444 __gbm_fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */ +#define GBM_FORMAT_BGRX4444 __gbm_fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */ + +#define GBM_FORMAT_ARGB4444 __gbm_fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */ +#define GBM_FORMAT_ABGR4444 __gbm_fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */ +#define GBM_FORMAT_RGBA4444 __gbm_fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */ +#define GBM_FORMAT_BGRA4444 __gbm_fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */ + +#define GBM_FORMAT_XRGB1555 __gbm_fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */ +#define GBM_FORMAT_XBGR1555 __gbm_fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */ +#define GBM_FORMAT_RGBX5551 __gbm_fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */ +#define GBM_FORMAT_BGRX5551 __gbm_fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */ + +#define GBM_FORMAT_ARGB1555 __gbm_fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */ +#define GBM_FORMAT_ABGR1555 __gbm_fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */ +#define GBM_FORMAT_RGBA5551 __gbm_fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */ +#define GBM_FORMAT_BGRA5551 __gbm_fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */ + +#define GBM_FORMAT_RGB565 __gbm_fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */ +#define GBM_FORMAT_BGR565 __gbm_fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */ + +/* 24 bpp RGB */ +#define GBM_FORMAT_RGB888 __gbm_fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */ +#define GBM_FORMAT_BGR888 __gbm_fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */ + +/* 32 bpp RGB */ +#define GBM_FORMAT_XRGB8888 __gbm_fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */ +#define GBM_FORMAT_XBGR8888 __gbm_fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */ +#define GBM_FORMAT_RGBX8888 __gbm_fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */ +#define GBM_FORMAT_BGRX8888 __gbm_fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */ + +#define GBM_FORMAT_ARGB8888 __gbm_fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */ +#define GBM_FORMAT_ABGR8888 __gbm_fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */ +#define GBM_FORMAT_RGBA8888 __gbm_fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */ +#define GBM_FORMAT_BGRA8888 __gbm_fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */ + +#define GBM_FORMAT_XRGB2101010 __gbm_fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */ +#define GBM_FORMAT_XBGR2101010 __gbm_fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */ +#define GBM_FORMAT_RGBX1010102 __gbm_fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */ +#define GBM_FORMAT_BGRX1010102 __gbm_fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */ + +#define GBM_FORMAT_ARGB2101010 __gbm_fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */ +#define GBM_FORMAT_ABGR2101010 __gbm_fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */ +#define GBM_FORMAT_RGBA1010102 __gbm_fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */ +#define GBM_FORMAT_BGRA1010102 __gbm_fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ + +/* packed YCbCr */ +#define GBM_FORMAT_YUYV __gbm_fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */ +#define GBM_FORMAT_YVYU __gbm_fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */ +#define GBM_FORMAT_UYVY __gbm_fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */ +#define GBM_FORMAT_VYUY __gbm_fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */ + +#define GBM_FORMAT_AYUV __gbm_fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */ + +/* + * 2 plane YCbCr + * index 0 = Y plane, [7:0] Y + * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian + * or + * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian + */ +#define GBM_FORMAT_NV12 __gbm_fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */ +#define GBM_FORMAT_NV21 __gbm_fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */ +#define GBM_FORMAT_NV16 __gbm_fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */ +#define GBM_FORMAT_NV61 __gbm_fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ + +/* + * 3 plane YCbCr + * index 0: Y plane, [7:0] Y + * index 1: Cb plane, [7:0] Cb + * index 2: Cr plane, [7:0] Cr + * or + * index 1: Cr plane, [7:0] Cr + * index 2: Cb plane, [7:0] Cb + */ +#define GBM_FORMAT_YUV410 __gbm_fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU410 __gbm_fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV411 __gbm_fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU411 __gbm_fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV420 __gbm_fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU420 __gbm_fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV422 __gbm_fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU422 __gbm_fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV444 __gbm_fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU444 __gbm_fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ + + +/** + * Flags to indicate the intended use for the buffer - these are passed into + * gbm_bo_create(). The caller must set the union of all the flags that are + * appropriate + * + * \sa Use gbm_device_is_format_supported() to check if the combination of format + * and use flags are supported + */ +enum gbm_bo_flags { + /** + * Buffer is going to be presented to the screen using an API such as KMS + */ + GBM_BO_USE_SCANOUT = (1 << 0), + /** + * Buffer is going to be used as cursor + */ + GBM_BO_USE_CURSOR = (1 << 1), + /** + * Deprecated + */ + GBM_BO_USE_CURSOR_64X64 = GBM_BO_USE_CURSOR, + /** + * Buffer is to be used for rendering - for example it is going to be used + * as the storage for a color buffer + */ + GBM_BO_USE_RENDERING = (1 << 2), + /** + * Buffer can be used for gbm_bo_write. This is guaranteed to work + * with GBM_BO_USE_CURSOR. but may not work for other combinations. + */ + GBM_BO_USE_WRITE = (1 << 3), +}; + +int +gbm_device_get_fd(struct gbm_device *gbm); + +const char * +gbm_device_get_backend_name(struct gbm_device *gbm); + +int +gbm_device_is_format_supported(struct gbm_device *gbm, + uint32_t format, uint32_t usage); + +void +gbm_device_destroy(struct gbm_device *gbm); + +struct gbm_device * +gbm_create_device(int fd); + +struct gbm_bo * +gbm_bo_create(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, uint32_t flags); + +#define GBM_BO_IMPORT_WL_BUFFER 0x5501 +#define GBM_BO_IMPORT_EGL_IMAGE 0x5502 +#define GBM_BO_IMPORT_FD 0x5503 + +struct gbm_import_fd_data { + int fd; + uint32_t width; + uint32_t height; + uint32_t stride; + uint32_t format; +}; + +struct gbm_bo * +gbm_bo_import(struct gbm_device *gbm, uint32_t type, + void *buffer, uint32_t usage); + +uint32_t +gbm_bo_get_width(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_height(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_stride(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_format(struct gbm_bo *bo); + +struct gbm_device * +gbm_bo_get_device(struct gbm_bo *bo); + +union gbm_bo_handle +gbm_bo_get_handle(struct gbm_bo *bo); + +int +gbm_bo_get_fd(struct gbm_bo *bo); + +int +gbm_bo_write(struct gbm_bo *bo, const void *buf, size_t count); + +int +gbm_bo_ref(struct gbm_bo *bo); + +int +gbm_bo_unref(struct gbm_bo *bo); + +void +gbm_bo_set_user_data(struct gbm_bo *bo, void *data, + void (*destroy_user_data)(struct gbm_bo *, void *)); + +void * +gbm_bo_get_user_data(struct gbm_bo *bo); + +void +gbm_bo_destroy(struct gbm_bo *bo); + +struct gbm_surface * +gbm_surface_create(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, uint32_t flags); + +int +gbm_surface_needs_lock_front_buffer(struct gbm_surface *surface); + +struct gbm_bo * +gbm_surface_lock_front_buffer(struct gbm_surface *surface); + +void +gbm_surface_release_buffer(struct gbm_surface *surface, struct gbm_bo *bo); + +int +gbm_surface_has_free_buffers(struct gbm_surface *surface); + +void +gbm_surface_destroy(struct gbm_surface *surface); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/libEGL.so.1 b/lib/libEGL.so.1 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libEGL.so.1 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libEGL.so.1.0.0 b/lib/libEGL.so.1.0.0 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libEGL.so.1.0.0 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libGLESv2.so.2 b/lib/libGLESv2.so.2 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libGLESv2.so.2 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libGLESv2.so.2.0.0 b/lib/libGLESv2.so.2.0.0 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libGLESv2.so.2.0.0 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libgbm.so b/lib/libgbm.so new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libgbm.so @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libgbm.so.1 b/lib/libgbm.so.1 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libgbm.so.1 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libgbm.so.1.0.0 b/lib/libgbm.so.1.0.0 new file mode 120000 index 0000000..dc6a278 --- /dev/null +++ b/lib/libgbm.so.1.0.0 @@ -0,0 +1 @@ +libmali.so \ No newline at end of file diff --git a/lib/libmali.so b/lib/libmali.so new file mode 100755 index 0000000..669d2bc Binary files /dev/null and b/lib/libmali.so differ diff --git a/pkgconfig/egl.pc b/pkgconfig/egl.pc new file mode 100644 index 0000000..ed61b56 --- /dev/null +++ b/pkgconfig/egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: Mali OpenEGL library +Requires.private: +Version: 7.10 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread +Cflags: -I${includedir} diff --git a/pkgconfig/gbm.pc b/pkgconfig/gbm.pc new file mode 100644 index 0000000..b9002ab --- /dev/null +++ b/pkgconfig/gbm.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: gbm +Description: Mali GBM library +Requires.private: +Version: 10.4.0 +Libs: -L${libdir} -lgbm +Libs.private: +Cflags: -I${includedir} diff --git a/pkgconfig/glesv2.pc b/pkgconfig/glesv2.pc new file mode 100644 index 0000000..ed2c27d --- /dev/null +++ b/pkgconfig/glesv2.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: GLESV@ library +Requires.private: +Version: +Libs: -L/lib -lGLESv2 +Libs.private: -lm -lpthread +Cflags: -I${includedir}