Jump to content
  • Advertisement

stevus06

Member
  • Content Count

    12
  • Joined

  • Last visited

Community Reputation

122 Neutral

About stevus06

  • Rank
    Member
  1. stevus06

    Real-time OpenGL screen capture

    Don't worry scope. Got all that I wanted out of this anyways. I decided to go with a Win32 GDI solution.
  2. stevus06

    Real-time OpenGL screen capture

    I think I see what you are saying samoth. I can't really use OpenGL here since the video that is shown on the monitor normally isn't created using OpenGL. For example, when I'm using Firefox or something, that's not OpenGL. It's the operation system basically right? If I want to capture the screen when normally using a PC, I have to use the operating system. If I am in a game where the graphics are created using OpenGL, I could technically use the PBO readback method? One question I have now, do you think it would be possible to do this whole screen-capture thing by interacting directly with the video driver? Don't video drivers have APIs written for them?
  3. stevus06

    Real-time OpenGL screen capture

    So what I am hearing is that BitBlt is not going to be as efficient of a solution as using this PBO readback method. I was reading a little about it and saw that using the PBO method basically involves fast pixel data transfer to and from the graphics card using DMA, and not hogging a bunch of CPU cycles. To me, this seems like the option I would want to pursue, since I am planning on running this program in the background while normal computer operation is going on. I don't want to look in the task manager and see my cpu usage pegging. I don't have this real-time video thing planned so much for games at this moment, but it might come up in the future and it would be good to be prepared with an efficient design.
  4. stevus06

    Real-time OpenGL screen capture

    I got the Greenshot code just now and looked at some of the Capture code. There is the main part of it that uses Win32 and BitBlt(). I remember seeing somewhere that BitBlt wasn't the best to use if you wanted quick access to framebuffers or something like that. If I find the page, I will try to post it. Most of the code though looks pretty straightforward for taking a screenshot. Lots of it is just the fancy GUI they've developed around it. So this Greenshot solution could be a better one than one using OpenGL?
  5. stevus06

    Real-time OpenGL screen capture

    Quote:Original post by samoth If you want to capture whatever data goes to the monitor, you don't want an OpenGL capture. Look at for example Greenshot to see how this can be done. It's an entirely different thing, but yes, this can also be done in a background application. Hmm wonder if however it gets the screens would work for what I'm planning on doing? Haven't gotten the source yet though, so I can check it out.
  6. stevus06

    Real-time OpenGL screen capture

    My idea was to make it run in the background, and capture whatever data was being sent to the monitor. Basically whichever data was viewable on the monitor, for example the windows screen with a web browser running or Word or whatever. I'm not really intending to record any particular foreign program, only what I mention above as whatever is displayed on-screen. Basically I want to copy some of the functionality of the video capture tools like Fraps, but without having to create a UI and all of the other stuff. Main goal of this app/DLL is to have it running and be able to provide a stream of frames representing what is being displayed on the monitor. When you mean without impacting my game, are you talking about running a DLL in the background of the OS, and having it not impact the framerate of a separate game application?
  7. stevus06

    Real-time OpenGL screen capture

    Quote:Original post by Decrius Quote:Original post by stevus06 Decrius: I agree with the open source libraries solution. I'm not looking for a currently finished application. Sorry! Didn't thought you needed it embedded. Well if there is something in those libraries that could be useful, it is an option. Just to clarify though, I don't want to use something already developed and packaged. If I have access to source, or some kind of library, that would be preferable.
  8. stevus06

    Real-time OpenGL screen capture

    Quote:Original post by szecs Do you want to make it yourself, or do you want an existing program? Quote:Original post by szecs There is FRAPS for example Or CamStudio // this is free If you google "screen capture video" for example, you will get lots of other hits. Prefer to write it myself. It will be part of a larger solution.
  9. stevus06

    Real-time OpenGL screen capture

    Wow lots of responses so far! So it sounds like a solution like this is definitely possible. I'm not really concerned about any stalls as long as they're not cumulative. As long as frames enter a program and exit to video at a fixed rate, it's no problem. Decrius: I agree with the open source libraries solution. I'm not looking for a currently finished application. Samoth: Sounds like you have a pretty good understanding about this. How much code do you think this would take? Is it something I can run in the background easily, maybe as some kind of DLL?
  10. stevus06

    Real-time OpenGL screen capture

    I want to capture the output. Mainly at the OS level. Like what someone would see on a monitor.
  11. Well this is my first post here but I wanted to ask hopefully a straightforward question. I'm trying to take a video of the screen frame by frame and I want to do it as close to real time as possible. I've heard there's ways to do it using Win32 GDI, OpenGL, DirectX, but I know that OpenGL is platform-independent so I want to use that. I've seen things for games like recording Counterstrike games and stuff but I wasn't sure how these worked. Basically if I can get something in a format where I can work with the individual pixels for each frame, that would work out.
  12. I have a C# GUI and a C++ DLL. The C++ DLL is doing some processing, and when it is finished with this processing, it needs to send data to the C# GUI. Im having trouble with the c# window handle. Im using FindWindow and passing it the name Ive called my C# form, but I think I am missing something. Here is the C#: protected override void WndProc(ref Message m) { switch (m.Msg) { case 0: // Do stuff here to use the GUI break; default: break; } base.WndProc(ref m); } And the C++: void ApplicationProxy::RemoveTable(HWND hTable) { HWND hWnd = ::FindWindow(NULL, _T("Processor")); if (hWnd) { COPYDATASTRUCT cds; ::ZeroMemory(&cds, sizeof(COPYDATASTRUCT)); cds.dwData = WM_DESTROY; cds.lpData = &hTable; cds.cbData = sizeof(HWND); ::SendMessage(hWnd, WM_COPYDATA, (WPARAM)hTable, (LPARAM)&cds); } } Should I be passing the C# window to the C++ somehow?
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!