Microsoft Surface Anyone?

Hey guys, has any of you tried running OF on a microsoft surface tablet? I expect it all to work out of the box, just curious if someone tried it?

We used some Surface Pro 3 for a project.
The most annoying thing to me was the lack of Wake On Lan support. Despite of that it behaves like any other windows machine.

You mean, does OF works on Windows RT, ARMv7 architecture? I’m curious too ':slight_smile:

[EDIT] But apparently it’s dead now ':slight_smile:

I have used the MS Opentech Universal App branch ( for both MS Surface Pro and Windows Phone 8.1 (Lumia 920 and 930), even with interop with C# and besides a couple of bumps in the road it is working fairly well.

I haven’t tried in an ARM-based Surface but since it works on the phone very well I would bet it would work on the surface too.

developed an application for surface, got some problem with codeblocks in my case, but no problem to run the binary on the surface itself.

now working on windows phone 8.1 and the MSOpenTech branch works really well, i have to say that it works better than OF ios and android branch on many things.
only problemi i got is with visual studio, i can’t add files to the project and to add files had to manually hack the .vcxitems to make it work.
also i had to add all the needed addons by hand.

@pmelendez do you found some problems with ofVideoPlayer on winphone 8.1 ??
this is the only real problem that i found till now, random app freeze (like crash but only freezes) while using ofVideoPlayer, have you seen something similar?

Hey @gh00st sorry for the delay.

I haven’t used ofVideoPlayer so I wouldn’t be able to tell. My problems were associated with the fact that I am using OpenFramework as a runtime component to be consumed from Xaml/C# and the lifetime of all the objects and singletons in the framework changed because of that. So I have to add a few hacks in order to used it in this way but is being very stable after that.

FreeImage was a tricky one to fix since FreeImage_DeInitialise() must be called once at the end of the application but since my Runtime Component would be instanciated and disposed several times during a session.

Did you fix the freeze thing?

As for the adding files in VS. I have no problem with that but I did have to manually edit the generated project and solution files to adapt them to my own project tree, so that might actually fixed something that you are running into. Let me know how can I help.


Thanks for the answer @pmelendez,

no i have not solved the ofVideoPlayer freezes, that to be precise is in ofMediaFoundationPlayer.cpp at the line

hr = m_spDX11DeviceContext->Map(m_spReadTexture.Get(), 0, D3D11_MAP_READ, 0, &mapped);

Anyway now i put in gifs for the videos, but got another problem, and you are saying something interesting about it X)

Can you please describe me better what was your situation and how do you solved the problem with FreeImage?
My application has a menu from where you can go back and restart the app, and on the second run the FreeImage gives me only garbage, maybe your solution can point me to somewhere.

What other fix have you done?


Hey @gh00st !
The garbage thing! Yeah … I totally got that too (and right after that a crash). Quick test, search for FreeImage_DeInitialise and comment that line (should be on only one place if I remember correctly). If that fix your problem then you know what it is… You should call it at the end of the app, although to be honest I didn’t see the difference with leaving it comment, the OS should clear all the memory and resources anyway, but I guess might be problematic not calling it in some scenarios… My curiosity wasn’t strong enough to download FreeImage code and see what’s going on.

Hope it helps.

PS: If this message formatting is weird it is because I am writing this from my phone.

No, sadly i commented the FreeImage_DeInitialise in ofImage.cpp and also the one that i got in ofxGif but with no result, the second time it contains garbage.

@gh00st Hey… sorry for the delay, but apparently the forum only notifies you when you are mentioned in the text.

Hmm that’s weird, How (or) are you cleaning the memory? OF seems to be designed to live during the whole life of your app and that makes it tricky to use it as a component. It took me a while to realized all the hacks needed to dispose it properly enough (not really properly but at least it works).

If you still have problems and want some help I would be glad to chat about it.

It ended up working great; although I couldn’t find a way of removing tearing (i.e. vertical sync not working)