*** empty log message ***

This commit is contained in:
David Rose 2001-02-21 00:44:00 +00:00
parent 318474d675
commit 483f7c1bfa
1 changed files with 35 additions and 11 deletions

View File

@ -663,19 +663,43 @@ void event_R(CPT_Event) {
}
void event_grave(CPT_Event) {
PixelBuffer p;
GraphicsStateGuardian* g = main_win->get_gsg();
const RenderBuffer& r = g->get_render_buffer(RenderBuffer::T_front);
GraphicsStateGuardian *gsg = main_win->get_gsg();
const RenderBuffer &rb = gsg->get_render_buffer(RenderBuffer::T_front);
p.set_xsize(main_win->get_width());
p.set_ysize(main_win->get_height());
p._image = PTA_uchar(main_win->get_width() * main_win->get_height() * 3);
// We simply grab the first DisplayRegion on the first Layer on the
// window's main channel.
GraphicsChannel *channel = main_win->get_channel(0);
nassertv(channel != (GraphicsChannel *)NULL);
p.copy(main_win->get_gsg(),
main_win->get_gsg()->get_current_display_region(),r);
if (channel->get_num_layers() == 0) {
nout << "Channel has no layers!\n";
return;
}
GraphicsLayer *layer = channel->get_layer(0);
nassertv(layer != (GraphicsLayer *)NULL);
if (layer->get_num_drs() == 0) {
nout << "Layer has no display regions!\n";
return;
}
DisplayRegion *dr = layer->get_dr(0);
nassertv(dr != (DisplayRegion *)NULL);
int width = dr->get_pixel_width();
int height = dr->get_pixel_height();
PixelBuffer p(width, height, 3, 1, PixelBuffer::T_unsigned_byte,
PixelBuffer::F_rgb);
nout << "Capturing frame.\n";
p.copy(gsg, dr, rb);
ostringstream s;
s << "frame" << main_win->get_frame_number() << ".pnm";
p.write(s.str());
s << "frame" << ClockObject::get_global_clock()->get_frame_count() << ".pnm";
Filename filename = s.str();
p.write(filename);
cerr << "Wrote " << filename << "\n";
}
void event_n(CPT_Event) {
@ -1176,7 +1200,7 @@ int framework_main(int argc, char *argv[]) {
event_handler.add_hook("w", event_w);
event_handler.add_hook("b", event_b);
event_handler.add_hook("R", event_R);
event_handler.add_hook("grave", event_grave);
event_handler.add_hook("`", event_grave);
event_handler.add_hook("n", event_n);
event_handler.add_hook("c", event_c);
event_handler.add_hook("D", event_D);