0.10.0 Release candidate 4


#1

Hi all

After a week of testing and fixing some remaining issues with the 2nd and 3rd release candidate, we’ve decided to do one last release candidate before doing the final release since there were several last minute problems that we had to solve.

It would be really useful if you could download the packages for the platforms you use and report if you notice any issues.

One of the major changes in 0.10.0 is the move to glm as our vector math library substituting the ofVec and ofMatrix classes. The old classes are still there and you don’t need to move to glm right away, indeed old projects should work with some minor adjustments since ofVec and glm::vec classes are interchangeable. We’ll post some more information about this and other new features in the following days.

It would be really helpful, if you could try running existing projects with 0.10.0 RC4 to see if issues arise but 0.10.0 is a major version change and as such there’s some breaking changes so testing old projects will likely require some changes in your code. Feel free to ask in this same thread if you find any problem migrating old projects.

If you find any other problem in the release please open an issue in the github issue tracker.

Windows – Visual Studio 2017: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_vs2017_release.zip

Windows – msys2 & Qt Creator: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_msys2_release.zip

mac OS – Xcode & emscripten: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_osx_release.zip

linux 64 – makefiles & Qt Creator & emscripten: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_linux64gcc6_release.tar.gz

Android Studio: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_android_release.tar.gz

iOS – Xcode: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_ios_release.zip

linux armv6 (raspberry pi) with raspbian – makefiles: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_linuxarmv6l_release.tar.gz

linux armv7 (tested mostly on raspberry pi with archlinux) – makefiles: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_linuxarmv7l_release.tar.gz

Because of relatively recent changes in the way c++ is compiled by gcc, the linux versions above are only compatible with gcc 6 or later. if you have an older distribution in linux desktop you can check your gcc version with

gcc -v

and use the corresponding version:

linux 64 gcc4 or earlier – makefiles & Qt Creator & emscripten: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_linux64gcc4_release.tar.gz
linux 64 gcc 5 – makefiles & Qt Creator & emscripten: http://openframeworks.cc/versions/v0.10.0RC4/of_v0.10.0RC4_linux64gcc5_release.tar.gz

The main changes since RC3 are:

  • macos project generator is now signed so it can be opened without relaxing the security settings of the operating system.
  • vs: add back a missing library removed accidentally during RC2 update of openssl
  • added rotatedRad/Deg to path and polyline to use the conventions used in other places for rotation
  • android: added PG and projects to the download
  • android: fixed a problem with sound streams
  • android: fixed a problem with wifimanager leak
  • some fixes for examples not compiling
  • linux: some fixes to compile_examples script
  • ofTruetypeFont: added a check and an error message if the font can’t be loaded cause of texture size limit

If everything goes well we’ll do a final release sometime this week.

Thank you for helping test the 0.10.0 release!
Arturo


Swizzle methods
#2

#3

Hello,

Win 7 & Qt Creator

The examples and new projects compile fine. A lot of warnings but this is not new.

Little problem when creating a new project : How to build on Qt designer?

I’m currently trying to build an existing project of mine.
I’m struggling to fix errors in ofxCV (master). I had to add the std:: before a lot of vector<
or using namespace std
I’m now stuck with this error:

Mat toCv(ofMesh& mesh) {
		vector<ofVec3f> & vertices = mesh.getVertices();

of_v0.10.0RC4_msys2_release\addons\ofxCv\libs\ofxCv\src\Utilities.cpp:32: erreur : invalid use of incomplete type ‘using ofMesh = class ofMesh_<glm::tvec3<float, (glm::precision)0>, glm::tvec3<float, (glm::precision)0>, ofColor_, glm::tvec2<float, (glm::precision)0> > {aka class ofMesh_<glm::tvec3<float, (glm::precision)0>, glm::tvec3<float, (glm::precision)0>, ofColor_, glm::tvec2<float, (glm::precision)0> >}’
vector & vertices = mesh.getVertices();
^~~~

I tried to replace the vector by:

auto & vertices = mesh.getVertices();

with no success.

Thanks to everyone who contribute, and I’m impatient to know what are the improvements with this release !


#4

You need to use the master branch of ofxCv which is already compatible with 0.10


#5

On Windows, I still have the same problem as in rc3.
1 - The project generator fails to create the label for the Visual Studio 2017. See screenshot

2 - When opening an example with Visual Studio 2017, and running it, I receive this error message

>------ Build started: Project: openframeworksLib, Configuration: Debug Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141\Toolset.targets(34,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
1>Done building project "openframeworksLib.vcxproj" -- FAILED.
2>------ Build started: Project: 3DModelLoaderExample, Configuration: Debug Win32 ------
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141\Toolset.targets(34,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
2>Done building project "3DModelLoaderExample.vcxproj" -- FAILED.
========== Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========

This is because I am on windows 10, but the examples, and the project created by the project generator, are for win 8.1.

I write here how to set up a project for windows 10, in case someone else will have my same problem.

  1. On the right bar, there is a panel called “Solution Explorer”. Select the opened project, im my case it is called “My sketch”
    tut1

2)Above the panel “Solution Explorer”, there is a panel called “Properties”. Click on the wrench icon
tut2

3)Select your windows version and click apply.

After this tree steps your project is targeting your current windows version. Repeat these 3 steps for the “openFrameworks” item in the panel “Solution Explorer”, that one in point 1.


#6

everything seems ok for:

linux64gcc6 with makefile
linux64gcc6 with emmake
android with android-studio

tested with complex applications on debian stretch.

I have a question,
i did not find anything inherent to the build with gradlew script
for the develop without IDE android-studio.
i made an attempt to build the example empty and i get these errors:

I try to investigate?


#7

Oups ! I read that before, but I’ve put the master branch in my 0F.0.9.8 folder instead of the RC one. It compile fine, sorry !

I have problems with ofMultMatrix, which doesn’t accept ofMatrix4x4 as argument.
ofMatrix4x4 as an operator glm::mat4(). I’m not very familiar with this syntax. I tried:

class ofApp : public ofBaseApp{

public:
    void setup(){
        m1.translate( 100.f, 100.f, 0.f );
    }
    void draw(){
        ofPushMatrix();
        ofMultMatrix( glm::mat4( m1 ) );
        ofDrawRectangle( 0, 0, 100, 100 );
        ofPopMatrix();
    }

private:
    ofMatrix4x4 m1;
};

and it work.

But I have another class with the same pattern and the compilation fail:

class AsRigidTransfert : public TransfertBase{

public:
    void draw() const;

private:
    ofMatrix4x4 topTeethMatrix ;
};

void AsRigidTransfert::draw() const {
    ofPushMatrix();
    ofMultMatrix( glm::mat4( topTeethMatrix ) ); // fail to compile
    topTeethImg.draw( 0.f, 0.f );
    ofPopMatrix();
}

The error is:

of_v0.10.0RC4_msys2_release\apps\myApps\FacePuppet\src\transferts\AsRigidTransfert.cpp:141: erreur : no matching function for call to ‘glm::tmat4x4<float, (glm::precision)0>::tmat4x4(const ofMatrix4x4&)’
ofMultMatrix( glm::mat4( topTeethMatrix ) );

I think this is because of the const.

Would it be possible and a good idea to add

void ofMultMatrix (const ofMatrix4x4 & m);

in ofGraphics to help the transition ?


#8

@lilive just doing:

ofMultMatrix(m1);

or

ofMultMatrix(topTeehtMatrix);

in the second example should work. ofMatrix4x4 autoconverts it self to glm::mat4 when passed to a function like that


#9

Autoconvertion, haha, nice, I have so much to learn…
Thank you @arturo

The problem occur in const functions :

class ofApp : public ofBaseApp{

public:
    void setup(){
        m1.translate( 100.f, 100.f, 0.f );
    }
    void draw(){
        draw2();
    }
    void draw2() const {
        ofPushMatrix();
        ofMultMatrix( m1 );
        ofDrawRectangle( 0, 0, 100, 100 );
        ofPopMatrix();
    }

private:
    ofMatrix4x4 m1;
};

C:\msys64\home\devine\of_v0.10.0RC4_msys2_release\apps\myApps\essai2\src\ofApp.h:13: erreur : no matching function for call to ‘ofMultMatrix(const ofMatrix4x4&)’
ofMultMatrix( m1 );

Of course I can do:

void draw2() const {
    ofPushMatrix();
    ofMatrix4x4 m2 = m1;
    ofMultMatrix( m2 );
    ofDrawRectangle( 0, 0, 100, 100 );
    ofPopMatrix();
}

but perhaps there is a way to avoid to create a temporary object.


#10

I see, there’s a problem with the method that converts between those types not being const. it’ll be fixed in the final release but you can fix it by adding const to this method in line 80 of ofMatrix4x4:

operator glm::mat4()

so it looks like:

	operator glm::mat4() const{
		return *reinterpret_cast<const glm::mat4*>(this);
	}

#11

Perfect, it works. Thank you.
The rest is fine, and I can compile a medium size project of mine. I had to made somes changes, but I think this is because it was a VS2015 project, and I’m testing it with msys2 / qt creator, this is not a OF backward compatibility problem.


#12

@edapx can you check if todays nightly solves your issues with vs? for some reason i have the 8.1 sdk installed even after completely removing visual studio so although i think it is, i can’t completely verify that it’s solved


#13

I can test this issue in the afternoon and I will let you know


#14

Various linker errors occur when I try to compile the openCV example in qt creator under arch Linux.

for instance

/usr/lib/libopencv_highgui.so:-1: error: warning: undefined symbol »gtk_widget_set_gl_capability«

When I compile the example using make in the terminal everything works fine.


#15

@brino that’s strange it’s working for me fine in ubuntu 18.04 can you post the output of:

pkg-config --libs opencv

#16
-lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core

#17

that seems like a problem with the opencv package in archlinux then. it seems opencv highgui has a dependency on some gtk library but the pkg-config is not including it.

probably because of the order in which include things in the makefiles and because we also use gtk it coincidentally works with makefiles but it’s really something that has to be solved in the package config of the archlinux opencv package


#18

The package was really missing. I just needed to install the package gtkglext and everything compiled fine.
Thanks Arturo


#19

@arturo, regarding the windows issue, it did not worked. on the sdk properties it was set <$LongNameThatNowIDontRemember>, I have to change it to the current window sdk version.


#20

I’m on macOS 10.12.6 with Xcode Version 9.2 beta (9C32c) with MBP Retina display
running this simple code

    ofBackground(0);
    int _h = mouseX;
    ofSetColor(255);
    for(int i=0; i<1000; i++){
        
        ofDrawLine(i, _h,i, _h+20);
    }

produces this image where lines should have been drawn one beside the next but for some reason some are on top of each other. I have seen this in previous versions too.