Welcome to Software Laboratory of Antillia.com.
    Future Windows and Linux Programming

  Es++ Class Library
  Home     Es++ Samples   Es++ ClassList

1 Download Es++
The latest Es++ library for Linux and sample programs is available.


Es++ Class Library 2.0.9 for Ubuntu 18.04.02 (2020/02/12)

This libary contains both a set of C++ class header files and a lot of sample programs of Es++.

2 What is Es++?
2.1 Es++ 2
 Es++ is an experimental and elementary C++ class library based on OZ++1.0 and gtkmm C++ Interfaces for GTK+ and GNOME GUI class library for Linux.
We provide a set of C++ class header files and a lot of sample programs for the libary.
 On Es++ we implemented all the member functions inside the C++ classes. This is not a conventional coding style of C++ of separating implementation and interface. But this coding style has one point which enables a rapid prototyping of writing and testing C++ prograqms quickly. It may (or may not) be useful for various experimentation projects.

 We developed this Es++ 2 library by using g++ 7.3.0 on Ubuntu 18.04.02 LTS, but didn't test it on other g++ versions or Linux distributions.

$ g++ --version
g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0

 In the latest Es++ 2, we have modified some C++ classes including PNGFile to be compiled on the latest libpng1636 and opengl packages, and implemented OpenCV-4.2.0 GUI classes by using Gdk::Pixbuf class and Gtk::DrawingArea class, and a lot of elementary sample programs of OpenCV-4.2.0.

Furthermore, we have modified OpenGLObject class not to include "/usr/include/GL/glext.h", because there are some typedef inconsistencis between "/usr/include/GL/glew.h" as shown below, e.g. :

/usr/include/GL/glext.h:12098:92:‘void __glewGetFragmentMaterialfvSGIX(GLenum, GLenum, GLfloat*)’
/usr/include/GL/glew.h:19356:52: ‘void (* __glewGetFragmentMaterialfvSGIX)(GLenum, GLenum, const GLfloat*)’

 We have also implemented some C++ classes to support GUI for gtkmm-3.0 and added sample programs based on the Es++ 2 library.


2.2 Development environment for Es++ 2
 In Es++ 2, we have been using latest Ubuntu 18.04.02 LTS, and OpenCV-4.2.0 respectively. In the version es++2.0.9, to use the legacy C constants and new APIs in OpenCV-4.2.0, we have updated OpenCVObject and OpenCVImageConverter classes. Furthermore, we have modified the Makefiles not to use pkg-config(see 4.0.0 does not produce pkgconfig file · Issue #13154 · opencv-opencv ·).

To use the libary of OpenCV, we have installed gtkmm-3.3 library on the Ubuntu 16.04 system In the version es++2.0.3, we have implemented some experimetal C++ classes to support OpenGL and its extention on gtkmm-3.0, which are based on freeglut and The OpenGL Extension Wrangler Library (GLEW) libraries. We did not use gtkglextmm library, because it is for gtkmm2.

We have added some development packages to the system in the following way, on the console.

1. Update and upgrade
sudo apt-get update
sudo apt-get upgrade

2. Install the latest g++ to support c++11
sudo apt-get install g++

3. Install the latest gtkmm-3.0
sudo apt-get install libgtkmm-3.0-dev for gtkmm-3.0

4. Download and install OpenCV-4.2.0
Download opencv-4.2.0.zip
Install it on the Tutorial Linux install

5. Download and install freeglut-3.0.0
Download freeglut-3.0.0
and install it.

6. Download and install GLEW
Download glew-2.1.0
and install it.




2.3 Es++ Features

1. Es++ is basically single inheritance oriented.
2. Es++ classes have been implemented in C++ header files using inline member functions.
3. Es++ applications only have to include Es++ class header files, and they can be compiled without linking any OZ++ specific shared or static library.
4. Es++ will support multiple charsets of ASCII(char) and UNICODE(wchar_t).




2 How to install Es++
You download the zip file es++.zip, and unzip it on your working directory. For example, by unzipping on a directory ~/work, you get the following directories:

2.1 Es++ 2
In the latest version, we have removed obsolete gtkmm-2.0 and opencv-3.0 folders.


~/work/es++/iclude
, which includes non-gui classes, gtkmm-3.0, opencv-4.0, opengl, opengl2, openglarb, openglext C++ header files for Es++ 2.0.

~/work/es++/samples
, which includes all NON-GUI sample program files for Es++ and build.sh shell script to compile them.

~/work/es++/gtkmm-3.0
, which includes some sample program files for gtkmm-3.0 and build.sh shell script to compile them.

~/work/es++/netlink
, which includes elementary sample program files for netlink and build.sh shell script to compile them.

[NEW] ~/work/es++/opencv-4.0
, which includes elementary sample program files for opencv-4.2.0 and build.sh shell script to compile them.


~/work/es++/opengl
, which includes elementary sample program files for opengl and build.sh shell script to compile them.

~/work/es++/opengl2
, which includes elementary sample program files for opengl2 and build.sh shell script to compile them.



 Last modified: 12 Feb. 2020

Copyright (c) 2019-2020 Antillia.com ALL RIGHTS RESERVED.