IRC Log Viewer » #firebreath » 2011-03-30

IRC Nick Time (GMT-7) Message
taxilian 01:03 g'night all
FireBreathBot 05:03 JIRA issue issue created by kawa
_pq_ 07:03 hello
where can I find the minimum browser requirements to run firebreath plugins?
I got some issues with firefox 3.5
is that supposed to be a supported browser?
scJohn1 07:03 _pg_: wiki says 3.0 or later
_pq_ 07:03 ty for link
I got some redrawing issues with scrolling in Firefox 3.5.18, which is supposed to be supported. :(
scJohn1 07:03 unfortunately I can't help you there
neilg_ 07:03 Morning!
_pq_: What drawing issues?
And on what platform?
_pq_ 08:03 windows
windowed plugin
on scrolling
when plugin scrolls over the upper border
garbage is being drawed below the plugin's area
i can see it in Firefox 3.5.18
neilg_ 08:03 And are you ignoring the refresh event?
(I'm guessing you are)
_pq_ 08:03 i'm ignoring what could I be doing wrong
but shouldn't the area outside of plugin be in browser's responsibility?
if you have any idea of what's wrong i'd like to hear what you think about it
neilg_ 08:03 Are you certain that the area is outside of the plugin? Because from what you've described it isn't. It's part of the plugin window that was hidden before and now needs to be redrawn
That's what I'd guess from the symptoms you're describing
_pq_ 08:03 no, it's the opposite happening
e.g the window scrolling
plugin moving upward
(scrolling with wheel, so by discrete moving)
as soon as plugin should be clipped by upper border by, for example, 40 pixel
40 pixel of garbage is shown below plugin area
where garbage = plugin's lower area at the moment of scrolling
it just happens when the plugin starts being clipped
i.e. further scrolling down don't increase the garbage area size
neilg_ 08:03 Well, I'd recommend not ignoring the FB::RefreshEvent and seeing whether that fixes it. My guess is yes! Probably because no events are being processed for your plugin's window which would explain the trail of garbage left behind when you scroll
_pq_ 08:03 i'm drawing at timer events, since it's opengl application, i think i'm not processing refresh event already
neilg_ 08:03 But are you processing windows messages?
_pq_ 08:03 i'll have a try at it
you mean like WM_PAINT and similar?
neilg_ 08:03 I have both an OpenGL and Direct3D plugin that draw and they handle scrolling Firefox just fine - but I'm processing Windows messages
_pq_ 08:03 isn't firebreath handling them?
neilg_ 08:03 Yes, it generates events like FB::RefreshEvent - but if you're ignoring them...
taxilian 08:03 _pq_: RefreshEvent is a WM_PAINT event on windows
_pq_ 08:03 i'm doing BeginPaint and EndPaint on that one
neilg_ 08:03 taxilian: Perhaps I should have been more explicit. I always assume that everybody knows what I know... :)
_pq_ 08:03 sorry
taxilian 08:03 _pq_: most likely your issue if you're drawing on timer events is that OpenGL doesn't work nicely in a browser on the main thread; instead of using WM_TIMER, create a new thread and do your drawing loop on that thread
it should fix the issue
neilg_ 08:03 No, don't be!
_pq_ 08:03 i'm drawing opengl content in another window, which is child of the plugin window
neilg_ 08:03 Actually... that probably is the solution for you. I know that my rendering is done in a separate thread for both OpenGL and DirectX
taxilian 08:03 _pq_: you need to draw in a second thread
_pq_ 08:03 you mean there could be issues because of thread context switching?
taxilian 08:03 I don't know why, but every time I've seen someone try to use OGL or DirectX on the main thread it messes things up
_pq_ 08:03 probably because of opengl drawing context, which is uniuque on each thread
FireBreathBot 08:03 JIRA issue issue commented by richard "is this the master branch or 1.4?"
taxilian 08:03 _pq_: that's my guess; I think Firefox does some accelerated drawing of its own
_pq_ 08:03 i'll have a try checking context switching see you in some minutes
FireBreathBot 09:03 JIRA issue issue commented by kawa "Hello and thank you for the answer!
JIRA issue issue comment edited by kawa "Hello and thank you for the answer!
FireBreathBot 09:03 JIRA issue issue commented by richard "I will fix the issue with the master branch; thank you for letting me know.
Commit 8d2909e on master by Richard Bateman: "FIREBREATH-21 fixed build error on windows"
FireBreathBot 10:03 JIRA issue issue commented by kawa "Hello Richard! I registered with regsvr32 and it didn't work, so i had to drag the FBControl.htm ..."
JIRA issue issue commented by richard "Sounds like IE doesn't display it until it has been used in a web page; this is not a bug. as lo..."
JIRA issue issue resolved by richard "master branch should work fine now"
FireBreathBot 10:03 JIRA issue issue commented by kawa "thanks a lot Richard!"
FireBreathBot 13:03 JIRA issue issue commented by gmurphy "After retracing my steps, this goes back to the original modification that I submitted for http:/..."
zEh- 13:03 is there a common function call log for windows?
tool or w/e
maybe in the sysinternals?
taxilian 13:03 zEh-: … not sure I understand your question
you want a logging tool?
zEh- 13:03 yes
taxilian 13:03 search for log4cplus
zEh- 13:03 for function calls.. atleast for dynamic loaded libs
taxilian 13:03 hmm
there is nothing automatic
but there is a logging abstraction in FireBreath that you can use
zEh- 13:03 i need that for general purpose
not for my plugin
taxilian 13:03 there is nothing like that
nothing does automatic logging
there is a function that will log to a windows debug console
but you have to use it
zEh- 13:03 well actually i could imagine how to do it
but that would take too much time
hookin every ordinaled function that each loaded dll exports
taxilian 13:03 hmm
you could play with Process Monitor
that might give you something helpful
zEh- 13:03 i read its description, but didnt say smth about what i need, but ill check it
taxilian 13:03 depends (dependency walker) has some sort of debug tool for tracking what DLLs are loaded and such in a process
I haven't used it myself, but it might be closer to what you're looking for
zEh- 13:03 well i need the function calls
taxilian 13:03 depends *might* let you watch entrypoint access as well, but I'm not sure
zEh- 13:03 cant imagine
ill try that aswell
no luck
taxilian 13:03 sorry :-/
zEh- 13:03 need to redirect the drawing on a window to my plugin for d3d8
at first just d3d
taxilian 13:03 good luck with that
that's… non-trivial, to say the least
particularly in IE; keep that in mind if you need to support IE
zEh- 13:03 first thought was to return the pluginwindowwin on the createwindowex
taxilian 13:03 or is the window that d3d8 is drawing in owned by your plugin process as well?
zEh- 13:03 yes
my plugin createprocesses it
taxilian 13:03 okay, I misunderstood
then it isn't owned by your plugin process
it's owned by another process
zEh- 13:03 oo
ah ye
taxilian 13:03 the process you create
zEh- 13:03 ah ye the win handle is not crossprocess?
taxilian 13:03 is there a reason you can't just put the new window inside your plugin window and draw directly?
zEh- 13:03 external binary
taxilian 13:03 HWND is cross process, yes
zEh- 13:03 or what u mean
with the directly drawing
taxilian 13:03 couldn't you tell your external binary to create its window as a childwindow of the plugin's window?
neilg_ is doing cross-process drawing to his plugin, if I remember correctly
zEh- 13:03 wont change the external binary
actually i cant
taxilian 13:03 ahh
yeah, good luck
that'll be fun
zEh- 13:03 xD
neilg_ 13:03 I'm actually not - but I'm going to be doing that soon. I actually need to because of virtual address space concerns :(
taxilian 13:03 oh, who was it that had it working, then?
neilg_ 13:03 I can't remember - but it's very simple to do. I think I may have mentioned that once and gotten people excited about it
taxilian 13:03 someone said they had it working
neilg_ 13:03 Yup, you're right - I just can't remember who that was
Not me, not yet!
FireBreathBot 13:03 JIRA issue issue commented by richard "Depending on the change, the easiest way is to either create a pull request on github or to commi..."
taxilian 13:03 I have a mantra that I keep chanting to myself… "just finish this stupid project, and I'll have time to work on things again, just finish the project, just finish the project..."
darn senior project =]
gomoov_ 14:03 Hello, taxilian
Can a plug-in be invoked by a multiple mime types?
(ex. Plug-in A can be invoked by either x-abc and x-bca)
Thank you!
neilg_ 14:03 Yes it can
I'd question why you'd want to do that - but yes you can!
zEh- 14:03 ye, tell me the reason please
gomoov_ 15:03 I just have two types of files internally
How can you do that?
( I meant above such as jpg and gif )
Also, is there a way to notify the plug-in of an event manually?
Like, at some point, I want the draw function of the plugin to be invoked.
taxilian 15:03 gomoov_: yes, as of firebreath 1.4 you can do mulitple mimetypes
and multiple plugins inside a single module
look at FBTestPlugin's PluginConfig.cmake for an example
gomoov_ 15:03 Taxilian, so you mean I could do something like
set(FBSTRING_MIMEType "application/x-abc"); set(FBSTRING_MIMEType "bca"); ... etc?
taxilian 15:03 no; it has to be part of the same set
you're giving it a list of each property that needs to be duplicated
gomoov_ 15:03 okay so its like set(FBSTRING_MIMEType "application/x-abc" "application/x-aaa" ... )
taxilian 15:03 it's not just mimetype, though; anything in that file that there are more than one item you need one for each
gomoov_ 15:03 okay good thanks!
And, just one more thing.
Is it possible to manually send an event msg to your plugin?
Such as FB::RefreshEvent
taxilian 15:03 yes
gomoov_ 15:03 How do you do that?
taxilian 15:03 !find PluginEventSource
FireBreathBot 15:03 Found 2 possible matches. Displaying 2
/^PluginEventSource::PluginEventSource()$/ (f) found in src/PluginCore/PluginEventSource.cpp:
/^ class PluginEventSource : public boost::enable_shared_from_this<PluginEventSource>, boost::noncopyable$/ (c) found in src/PluginCore/PluginEventSource.h:
taxilian 15:03 !find PluginEventSink
FireBreathBot 15:03 Found 3 possible matches. Displaying 3
/^ PluginEventSink() { };$/ (f) found in src/PluginCore/PluginEventSink.h:
/^ class PluginEventSink : public boost::enable_shared_from_this<PluginEventSink>, boost::noncopyable$/ (c) found in src/PluginCore/PluginEventSink.h:
/^ typedef boost::shared_ptr<PluginEventSink> PluginEventSinkPtr;$/ (t) found in src/PluginCore/PluginEventSink.h:
taxilian 15:03 PluginCore is a PluginEventSink
PluginWindow is a PluginEventSource
also, if FireBreath is really useful to you, *please* consider contributing back — updated docs on the wiki to answer some of these questions for people would be awesome
I ask a lot of people that, but very few are willing to take the time and do it
gomoov_ 15:03 Okay I will definitely
Just I still do not feel comfortable with it, so I need to work on this more :)
taxilian 15:03 keep in mind; if your docs aren't completely accurate I will fix them
but it's a lot easier to fix something that is mostly right than it is to write something
so don't feel like you need to understand it perfectly; any docs are better than no docs
gomoov_ 15:03 okay!
how do you update wiki?
taxilian 15:03 just log in and edit the pages
it's pretty easy
gomoov_ 15:03 alright
taxilian 15:03 if you have a jira login, it's the same
or vise versa
gomoov_ 15:03 yup i see
zEh-DC 16:03 is there a better way than getfspath+PathRemoveFileSpec
taxilian 16:03 sorry, to do what?
zEh- 16:03 get plugin folder path
without the filename
taxilian 16:03 if if were me, I'd just use a substr and a reverse find for "\\"
or of course you could use boost::filesystem
but that seems like overkill =]
kryssi 16:03 Hi, I wanted to ask how can I use firebreath logging, as I see the default is null logger which does nothing, where can I change it to log4cplus
taxilian 16:03 kryssi: nobody has taken the time to document it yet; you're welcome to be the first =] do a search of for log4cplus and you should find everything you need
kryssi 16:03 my next question was: is it documented :)
taxilian 16:03 it needs to be documented =]
Please please please document it =]
I'll fix anything you document wrong :-P
(can you tell I'm getting desperate for some help with updating the docs? =])
kryssi 16:03 yes I can :)
hehe nice documentation :), IRC logs
taxilian 16:03 most of the info is there
but if I write all the docs myself I'll never get any coding done
zEh- 16:03 xD
taxilian 16:03 I guess I feel like I've done enough and it wouldn't hurt some of our users to do a bit more =]
kryssi 16:03 I have never used the irc logs search before and I see that like you say, there is a lot of info, bit here bit there and if you put all the pieces together you get what you look for
taxilian 16:03 yeah
kryssi 16:03 I wish I could have more time to contribute to this project, It's very cool project
If I win in a lottery I will work for firebreath :)
taxilian 16:03 the thing that gets me is that it doesn't take much to give back to a project like this; a few paragraphs on a short wiki page makes a big difference
answer some questions for people when I'm not here, log bugs, maybe fix a small issue and send in a patch
there are lots of ways to help
send me money ;-)
kryssi 16:03 of course