IRC Log Viewer » #firebreath » 2011-05-24

IRC Nick Time (GMT-7) Message
dougma 00:05 least in the context of using getIDForName to implement HasMethod
dougma 00:05 mmm
i wouldn't expect calling JSAPI::HasProperty to add the property
dougma 01:05 I'd like to be able to FB::ptr_cast from a FB::JSAPIPtr to my plugin's APIPtr... but I am receiving this JSAPIPtr via my plugin's API. So, under IE, i am actually receiving an IDispatchAPIPtr, so, i'm stuck....
iyswim... any suggestions?
dougma 01:05 IDispatchAPI::getJSAPI() is returning null...
dougma 01:05 ok, solved it on the js side
pass in the element.object
Jamil 04:05 Hi all
I am moving from 1.3 to 1.5
params not working anymore
I read about a change since 1.4
any sample or documentation link
this was working on 1.3: std::string scTimeStamp(getPlugin()->getParam("timestamp").convert_cast<std::string>());
FireBreathBot 05:05 JIRA issue issue created by wargloom
jwgroup 08:05 Hi
Does anyone here use firebreath with VC 2010 express?
I am following the tutorial videos, and while following the steps in the second video, i have a series of solutions that did not load
I get the following output message in VC2010 : "Some of the properties associated with the solution could not be read."
taxilian 09:05 jwgroup: did you install the DDK?
jwgroup 09:05 yes
taxilian 09:05 hmm. I haven't tried it in awhile, but others have recently and I haven't heard of that bug before. try deleting the build dir and rerunning the prep command
are there any errors in cmake?
jwgroup 09:05 hold on
Jamil 09:05 Hi taxilian
taxilian 09:05 howdy
Jamil 09:05 did you read my question about params
taxilian 09:05 yeah… thinking
so the getParams function is one that you created
Jamil 09:05 no it was there with version 1.3, no?
taxilian 09:05 no
!find getParams
FireBreathBot 09:05 Could not find any tags matching getParams
taxilian 09:05 not now either =]
though there is something similar, if I remember
!findfile PluginCore.h
FireBreathBot 09:05 Found 1 matching file(s) in the master branch. First 1 are:
taxilian 09:05 lol.
!find getParam
FireBreathBot 09:05 Found 1 possible matches. Displaying 1
taxilian 09:05 !find getParam
lol. I crashed him
!find getParam
FireBreathBot 09:05 Found 1 possible matches. Displaying 1
/^boost::optional<std::string> PluginCore::getParam(const std::string& key) {$/ (f) found in src/PluginCore/PluginCore.cpp:
taxilian 09:05 so you can use that; it's public. you can also make your own
you just need to get whatever it is from m_params
that uses boost::optional, so you can call it and check the result to see if there is one
jwgroup 09:05 hi taxilian, I've just rerun it all again, and I have the same error. Additionally, I have a message saying that VC2010 Express does not support solution folders... Does this mean DDK did not install properly?
taxilian 09:05 ahh; hmm. I had forgotten that. Interesting.
okay, so you can edit the root FireBreath/CMakeLists.txt and turn off source groups (at the top of the file)
that may fix the issue
if it does, please file an issue so I remember to make that automaic
if the prep script has errors like that then the solution isn't generated correctly, btw
jwgroup 09:05 hmm?
taxilian 09:05 lol. to what part?
jwgroup 09:05 Sorry, I'm new to Cmake scripts lol..
am googling tutorials for them atm
which is the prep scripty?
Jamil 09:05 how can I get the param value from boost::optional?
taxilian 09:05 look for something at the beginning of the cmake script that talks about groups
Jamil: if (retval) std::string value = *retval;
jwgroup: the prep script is the script that starts with "prep". e.g. prep2005.cmd,, prep2010.cmd,, ...
jwgroup 09:05 o okay. so when I run the prep2010.cmd , if there is a prep script error, it should say so in the cmd window then?
taxilian 09:05 yes
technically it's 'a cmake error
the prep script just runs cmake for you
on mac it also patches the project
but yeah, that's what to watch for
cmake / prep script generates the project files for your computer; those are just temporary, they can be deleted at any time and recreated by rerunning the prep script
jwgroup 09:05 o so thats what the tutorial meant by build files being temp?
taxilian 09:05 yes
jwgroup 09:05 also, for the cmakelists.txt, is the line I'm looking for "set_property(GLOBAL PROPERTY USE_FOLDERS On)" ?
taxilian 09:05 please feel free to update the docs so that they are more clear
yes; comment that out and try again
jwgroup 09:05 mkay will do thank you!
taxilian 09:05 let me know if that works
like I said; if it does, we need to fix that in FireBreath; I remember someone else having the issue now, I had completely forgotten about it because they didn't add a Jira ticket
and my memory is funny that way
jwgroup 09:05 lol
sorry, by commenting out, do you mean just adding a // in front of the command?
taxilian 09:05 # in cmake
jwgroup 09:05 right
lol whoops
FireBreathBot 09:05 JIRA issue issue resolved by richard "Pretty sure you just need to do a {{git submodule update --init --recursive}} to update the boost..."
taxilian 09:05 dougma: looking at your comments, not sure I understand them all
jwgroup 09:05 taxilian, is the purpose of FireBreath to deploy projects onto browsers?
taxilian 09:05 the purpose of FireBreath is to make it easier to create Browser Plugins
jwgroup 09:05 hmm
does that enable programs and projects to be embedded in browsers then?
taxilian 09:05 umm… it allows you to create Browser Plugins
for a more complete explanation of what qualifies, see
some programs and projects, yes
but there is a big difference between a browser plugin and a regular program
they are not the same thing
and FireBreath makes no attempt to make them be the same thing
it is for creating browser plugins, not for embedding applications in the browser
though it can sometimes be used for that
your question really lacks context that would make any answer I give meaningful; if you tell me what you're trying to accomplish, I may be able to answer in a more useful manner
jwgroup 09:05 lol okay, sorry about that
i kind of realized that too after i asked it\
I'm trying to embed a 3d rendering program on the internet, so that it can be viewed in browsers
similar to this one :
which was written in Ogre3d and used FireBreath
which is what I'm trying to do.
and I already have a functional application written in C++, so I was just trying to use Firebreath to deploy it on the internet
taxilian 09:05 well, that might work
and it might not
keep in mind that a browser plugin lives inside another process
you can't control the CWD, for example
that may change at any time
jwgroup 09:05 CWD ?
taxilian 09:05 current working directory
you are also restricted to whatever security settings the browser has given you; currently that's mostly only a consideration on IE, when you could be in protected mode (UAC is on) you may not be able to write to most parts of the hard drive
you also can't block on the main thread or you'll lock up the whole browser
there may be other considerations
jwgroup 09:05 hmm
so are you saying that I may have a problem linking my program/project?
taxilian 09:05 I haven't said anything about build issues
though if you use dynamic linking that can sometimes be tricky
I'm talking about when it is running
you run inside another process
not as a standalone exe
jwgroup 09:05 crap
taxilian 09:05 if your code is really well written, it probably wont' matter
but if you use a lot of globals or statics, rely on CWD, and/or generally don't play nice with memory you could have a bit of a problem
globals and CWD use are the most common issues I've seen wtih games and such
as a generalization, game programmers tend to take a lot of shortcuts in my experience
I don't know if you fall in that group or not =]
jwgroup 09:05 haha....
okay so i have to fix that then, no globals and no statics
how would i go about adding my project using firebreath?
Do I simply add it to the PluginTest solution folder?
taxilian 10:05 create a test plugin and start playing with it; it will become more clear
it's not really that complicated
when you have specific questions, let us know
jwgroup 10:05 ok thank you
taxilian 10:05 that one is just a little too general. go do some homework =]
jwgroup 10:05 o just another thing
lol haha
another general question =P, do I need to know how to do web programming for this then?
\because I'm strictly a C/C++ developer....
taxilian 10:05 basic understanding of javascript would help
but you will *probably* get by for now
depends on what exactly you want to do with it
jwgroup 10:05 ok thank you
taxilian 10:05 bbl
FireBreathBot 15:05 Commit 044d9de on firebreath-1.5 by Richard Bateman: "Merge pull request #14 from dougma/fb-76
Commit 4e11a4b on firebreath-1.5 by Richard Bateman: "FIREBREATH-78: Fix bug where setReady is called multiple tim..."
Commit 4e11a4b on master by Richard Bateman: "FIREBREATH-78: Fix bug where setReady is called multiple tim..."
JIRA issue issue resolved by richard "This issue should now be fixed; setReady is no longer called multiple times."
JIRA issue issue commented by richard "I think the reason for this is that I don't know of a reliable way to detect ResizedEvents, parti..."
FireBreathBot 16:05 Commit 8b3759c on firebreath-1.5 by Richard Bateman: "HTTPRequest now allows (requires) CA certs to be added by th..."
Commit 8b3759c on master by Richard Bateman: "HTTPRequest now allows (requires) CA certs to be added by th..."
FireBreathBot 19:05 JIRA issue issue commented by dougma "SetObjectRects is reliable (even gives you a zero-size rect when the control is hidden), and impl..."
JIRA issue issue commented by richard "Re OnDraw: that I didn't not know; that could explain some things.
dougma 19:05 cool.
re earlier ramblings... i think i mostly understand... just one question remains:
SetObjectRects is pretty busy yeah...
especially when you scroll or resize browser window
taxilian 19:05 not only that, but I'm not sure I trust the bounds it gives me
dougma 19:05 it's telling you where the control is... generally i'm only interested in a resize rather than a reposition
taxilian 19:05 when I use them to invalidate it often doesn't work
dougma 19:05 yeah, i don't understand the invalidate co-ords
taxilian 19:05 and it gets called several times with different positions when nothing has moved
dougma 19:05 yes.
taxilian 19:05 which is completely weird
dougma 19:05 porbably
taxilian 19:05 that's why I more or less stopped trusting it and just started using the bounds provided in the draw call =]
dougma 19:05 but it's always right in my experience
taxilian 19:05 what qualifies as "right"?
the coordinates change, but the window hasn't moved
what do the changed coordinates mean?
then you get coordinates for drawing and they are different still
dougma 19:05 actually, i should say i only ever check for dimensions
taxilian 19:05 dimensions seem to be consistent
but it just makes me nervous to trust that function at all =]
dougma 19:05 drawing coords are probably dc relative
taxilian 19:05 that's my assumption
dougma 19:05 but my old drawing path was full of lots of trial and error
anyway seems to be working in FB. :)
do you know about this line?
taxilian 19:05 I am really trying to remember what that was for…. I remember there was a reason
but I don't remember what it is
it has been there and working for a long time, though
dougma 19:05 my only guess was that you could test it on the other side if you happen to be implementing IDispatchEx but that doesn't seem to be the case and quite evil.
fdexNameEnsure worries me too.
taxilian 19:05 fdexNameEnsure is needed to support SetProperty; in practice even if it did create the property or member it wouldn't really have any effect unless you set it to something
dougma 19:05 yes... but it makes HasMethod/HasProperty a bit useless
taxilian 19:05 arguably; on the other hand those are moderately useless anyway, since even if the DISPID exists that doesn't really tell you anything other than that it recognizes the name, more or less
no way to know if it is a method, property, or just a name it decided to respond to
that would probably not be a bad thing to correct, though
it would at least be better