File tree Expand file tree Collapse file tree 3 files changed +22
-9
lines changed
Expand file tree Collapse file tree 3 files changed +22
-9
lines changed Original file line number Diff line number Diff line change @@ -1195,7 +1195,20 @@ void RenderCanvas::renderStart(void)
11951195 renderMode == this ->SPIRAL_IN_AND_OUT2 )
11961196 {
11971197 vector<Pixel> toRender;
1198- toRender.reserve (pixelsToRender);
1198+ try
1199+ {
1200+ toRender.reserve (pixelsToRender);
1201+ }
1202+ catch (...)
1203+ {
1204+ unsigned int size = sizeof (Pixel ((unsigned ) w->vp .hres /2 ,(unsigned ) w->vp .vres /2 ));
1205+ unsigned long memory = ((pixelsToRender * size) * 0.0009765625 ); // KB
1206+ memory = memory * 0.0009765625 ; // MB
1207+
1208+ wxMessageBox (wxT (wxString::Format (wxT (" Error: Not enough memory space! Need: %ld MB free RAM" ), memory)) );
1209+ wxMessageBox (wxT (" Resolution may be too great" ));
1210+ throw 1 ;
1211+ }
11991212
12001213 // Generate Points for Spiral
12011214 if (renderMode == this ->SPIRAL_IN || renderMode == this ->SPIRAL_OUT || renderMode == SPIRAL_IN_AND_OUT || renderMode == SPIRAL_IN_AND_OUT2)
@@ -1676,7 +1689,7 @@ void RenderCanvas::OnQuit()
16761689 { wxCriticalSectionLocker enter (*threadsCS[id]);
16771690 if ((*iter) != NULL )
16781691 { if ((*iter)->Delete () != wxTHREAD_NO_ERROR )
1679- wxLogError (" Can't delete the thread!" );
1692+ wxLogError ((wxChar*) " Can't delete the thread!" );
16801693 }
16811694 }
16821695 }
Original file line number Diff line number Diff line change @@ -30,13 +30,13 @@ struct RenderedInt {
3030 int x, y, r, g, b;
3131} ;
3232
33- class Pixel
33+ struct Pixel
3434{
3535public:
36- Pixel (int xi, int yi) : x(xi), y(yi)
36+ Pixel (unsigned short xi, unsigned short yi) : x(xi), y(yi)
3737 { }
3838
39- int x, y;
39+ unsigned short x, y;
4040};
4141
4242
Original file line number Diff line number Diff line change @@ -12,9 +12,9 @@ World::build(void) {
1212 int num_samples = 1 ;
1313
1414 // view plane
15-
16- vp.set_hres (400 );
17- vp.set_vres (400 );
15+ int size = 1 ;
16+ vp.set_hres (400 * size );
17+ vp.set_vres (400 * size );
1818 vp.set_pixel_size (0.5 );
1919 vp.set_samples (num_samples);
2020
@@ -36,7 +36,7 @@ World::build(void) {
3636 pinhole_ptr->set_eye (0 , 0 , 500 );
3737 pinhole_ptr->set_lookat (0.0 );
3838 pinhole_ptr->set_view_distance (600.0 );
39- // pinhole_ptr->set_zoom(1.0f);
39+ pinhole_ptr->set_zoom (1 .0f * size );
4040 pinhole_ptr->compute_uvw ();
4141 set_camera (pinhole_ptr);
4242
You can’t perform that action at this time.
0 commit comments