Primitive Failed error trying openInExternalWindow
Hi, greetings! I was trying out some examples from the Pharo By Example book on the latest development version of Pharo, and I wanted to create a stand-alone window for a simple game on Ubuntu. So I found out the openInExternalWindow method, the window appears but I get this error that I couldn't understand, and could not find any reference to it online. So I'm not sure if it's a bug. The simplest way I found to reproduce it was: 'Hello' asMorph openInExternalWindow. I'm using Pharo 7 on Ubuntu 17.10. A copy of the stack: ByteArray(Object)>>primitiveFailed: ByteArray(Object)>>primitiveFailed ByteArray>>integerAt:size:signed: ByteArray>>unsignedLongAt: SDL_KeyDownEvent>>windowID OSSDL2Driver>>convertEvent: [ event := self convertEvent: sdlEvent. event ifNotNil: [ eventQueue nextPut: event ] ] in OSSDL2Driver>>processEvent: in Block: [ event := self convertEvent: sdlEvent.... BlockClosure>>on:do: OSSDL2Driver>>processEvent: OSSDL2Driver>>eventLoopProcessWithoutPlugin [ self eventLoopProcessWithoutPlugin ] in OSSDL2Driver>>setupEventLoop in Block: [ self eventLoopProcessWithoutPlugin ] [ self value. Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value.... But it seems incomplete. Any more information I can provide? Thank you.
Hello Eduardo this method is not done to be invoked like that. In the future Pharo will move to SDL (in fact to OSWindow based on SDL or other framework). Right now OSWindow is not ready to be really used. Right now what you should do is resize the main window the the size of your largest morph. We should definitively invest more in the deployment of Application. Stef On Sat, Oct 21, 2017 at 6:28 PM, Eduardo de Oliveira Padoan <eduardo.padoan@gmail.com> wrote:
Hi, greetings!
I was trying out some examples from the Pharo By Example book on the latest development version of Pharo, and I wanted to create a stand-alone window for a simple game on Ubuntu. So I found out the openInExternalWindow method, the window appears but I get this error that I couldn't understand, and could not find any reference to it online. So I'm not sure if it's a bug.
The simplest way I found to reproduce it was:
'Hello' asMorph openInExternalWindow.
I'm using Pharo 7 on Ubuntu 17.10.
A copy of the stack:
ByteArray(Object)>>primitiveFailed: ByteArray(Object)>>primitiveFailed ByteArray>>integerAt:size:signed: ByteArray>>unsignedLongAt: SDL_KeyDownEvent>>windowID OSSDL2Driver>>convertEvent: [ event := self convertEvent: sdlEvent. event ifNotNil: [ eventQueue nextPut: event ] ] in OSSDL2Driver>>processEvent: in Block: [ event := self convertEvent: sdlEvent.... BlockClosure>>on:do: OSSDL2Driver>>processEvent: OSSDL2Driver>>eventLoopProcessWithoutPlugin [ self eventLoopProcessWithoutPlugin ] in OSSDL2Driver>>setupEventLoop in Block: [ self eventLoopProcessWithoutPlugin ] [ self value. Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value....
But it seems incomplete. Any more information I can provide?
Thank you.
Thanks for the explanation Stef. It would probably be a good idea to have a kind of "reverse depreciation warning" in this method, as it seems like a newbie pitfall :P Em dom, 22 de out de 2017 17:44, Stephane Ducasse <stepharo.self@gmail.com> escreveu:
Hello Eduardo
this method is not done to be invoked like that. In the future Pharo will move to SDL (in fact to OSWindow based on SDL or other framework). Right now OSWindow is not ready to be really used. Right now what you should do is resize the main window the the size of your largest morph. We should definitively invest more in the deployment of Application.
Stef
On Sat, Oct 21, 2017 at 6:28 PM, Eduardo de Oliveira Padoan <eduardo.padoan@gmail.com> wrote:
Hi, greetings!
I was trying out some examples from the Pharo By Example book on the latest development version of Pharo, and I wanted to create a stand-alone window for a simple game on Ubuntu. So I found out the openInExternalWindow method, the window appears but I get this error that I couldn't understand, and could not find any reference to it online. So I'm not sure if it's a bug.
The simplest way I found to reproduce it was:
'Hello' asMorph openInExternalWindow.
I'm using Pharo 7 on Ubuntu 17.10.
A copy of the stack:
ByteArray(Object)>>primitiveFailed: ByteArray(Object)>>primitiveFailed ByteArray>>integerAt:size:signed: ByteArray>>unsignedLongAt: SDL_KeyDownEvent>>windowID OSSDL2Driver>>convertEvent: [ event := self convertEvent: sdlEvent. event ifNotNil: [ eventQueue nextPut: event ] ] in OSSDL2Driver>>processEvent: in Block: [ event := self convertEvent: sdlEvent.... BlockClosure>>on:do: OSSDL2Driver>>processEvent: OSSDL2Driver>>eventLoopProcessWithoutPlugin [ self eventLoopProcessWithoutPlugin ] in OSSDL2Driver>>setupEventLoop in Block: [ self eventLoopProcessWithoutPlugin ] [ self value. Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value....
But it seems incomplete. Any more information I can provide?
Thank you.
Hi Eduardo, Your FFIStructures are not initialised (I thought this was solved in latest Pharo 7 ? Maybe not integrated yet). Run: FFIExternalStructure allSubclassesDo: #rebuildFieldAccessors. Then your code should work. I wrote a simple game using Pharo/SDL2/Cairo and it works very well (50fps without problems, responsiveness is really good, etc.), the ReadMe includes how to run it on Ubuntu/Mac OS X/Windows, check here: https://github.com/clementbera/wizard-battle-arena Let me know if you have other questions. On Sat, Oct 21, 2017 at 6:28 PM, Eduardo de Oliveira Padoan < eduardo.padoan@gmail.com> wrote:
Hi, greetings!
I was trying out some examples from the Pharo By Example book on the latest development version of Pharo, and I wanted to create a stand-alone window for a simple game on Ubuntu. So I found out the openInExternalWindow method, the window appears but I get this error that I couldn't understand, and could not find any reference to it online. So I'm not sure if it's a bug.
The simplest way I found to reproduce it was:
'Hello' asMorph openInExternalWindow.
I'm using Pharo 7 on Ubuntu 17.10.
A copy of the stack:
ByteArray(Object)>>primitiveFailed: ByteArray(Object)>>primitiveFailed ByteArray>>integerAt:size:signed: ByteArray>>unsignedLongAt: SDL_KeyDownEvent>>windowID OSSDL2Driver>>convertEvent: [ event := self convertEvent: sdlEvent. event ifNotNil: [ eventQueue nextPut: event ] ] in OSSDL2Driver>>processEvent: in Block: [ event := self convertEvent: sdlEvent.... BlockClosure>>on:do: OSSDL2Driver>>processEvent: OSSDL2Driver>>eventLoopProcessWithoutPlugin [ self eventLoopProcessWithoutPlugin ] in OSSDL2Driver>>setupEventLoop in Block: [ self eventLoopProcessWithoutPlugin ] [ self value. Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value....
But it seems incomplete. Any more information I can provide?
Thank you.
-- Clément Béra Pharo consortium engineer https://clementbera.wordpress.com/ Bâtiment B 40, avenue Halley 59650 Villeneuve d'Ascq
Thanks, I will try it. I will check your game too, I like learning from examples. Em dom, 22 de out de 2017 18:14, Clément Bera <bera.clement@gmail.com> escreveu:
Hi Eduardo,
Your FFIStructures are not initialised (I thought this was solved in latest Pharo 7 ? Maybe not integrated yet). Run:
FFIExternalStructure allSubclassesDo: #rebuildFieldAccessors.
Then your code should work.
I wrote a simple game using Pharo/SDL2/Cairo and it works very well (50fps without problems, responsiveness is really good, etc.), the ReadMe includes how to run it on Ubuntu/Mac OS X/Windows, check here:
https://github.com/clementbera/wizard-battle-arena
Let me know if you have other questions.
On Sat, Oct 21, 2017 at 6:28 PM, Eduardo de Oliveira Padoan < eduardo.padoan@gmail.com> wrote:
Hi, greetings!
I was trying out some examples from the Pharo By Example book on the latest development version of Pharo, and I wanted to create a stand-alone window for a simple game on Ubuntu. So I found out the openInExternalWindow method, the window appears but I get this error that I couldn't understand, and could not find any reference to it online. So I'm not sure if it's a bug.
The simplest way I found to reproduce it was:
'Hello' asMorph openInExternalWindow.
I'm using Pharo 7 on Ubuntu 17.10.
A copy of the stack:
ByteArray(Object)>>primitiveFailed: ByteArray(Object)>>primitiveFailed ByteArray>>integerAt:size:signed: ByteArray>>unsignedLongAt: SDL_KeyDownEvent>>windowID OSSDL2Driver>>convertEvent: [ event := self convertEvent: sdlEvent. event ifNotNil: [ eventQueue nextPut: event ] ] in OSSDL2Driver>>processEvent: in Block: [ event := self convertEvent: sdlEvent.... BlockClosure>>on:do: OSSDL2Driver>>processEvent: OSSDL2Driver>>eventLoopProcessWithoutPlugin [ self eventLoopProcessWithoutPlugin ] in OSSDL2Driver>>setupEventLoop in Block: [ self eventLoopProcessWithoutPlugin ] [ self value. Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self value....
But it seems incomplete. Any more information I can provide?
Thank you.
-- Clément Béra Pharo consortium engineer https://clementbera.wordpress.com/ Bâtiment B 40, avenue Halley 59650 <https://maps.google.com/?q=40,+avenue+Halley+59650%C2%A0Villeneuve+d'Ascq&entry=gmail&source=g>Villeneuve d <https://maps.google.com/?q=40,+avenue+Halley+59650%C2%A0Villeneuve+d'Ascq&entry=gmail&source=g> 'Ascq <https://maps.google.com/?q=40,+avenue+Halley+59650%C2%A0Villeneuve+d'Ascq&entry=gmail&source=g>
participants (3)
-
Clément Bera -
Eduardo de Oliveira Padoan -
Stephane Ducasse