@@ -27,15 +27,15 @@ extern ui::Graphics *graphics;
2727Canvas::Canvas () :
2828 _w(0 ),
2929 _h(0 ),
30- _pixels(NULL ),
31- _clip(NULL ) {
30+ _pixels(nullptr ),
31+ _clip(nullptr ) {
3232}
3333
3434Canvas::~Canvas () {
3535 delete [] _pixels;
3636 delete _clip;
37- _pixels = NULL ;
38- _clip = NULL ;
37+ _pixels = nullptr ;
38+ _clip = nullptr ;
3939}
4040
4141bool Canvas::create (int w, int h) {
@@ -108,16 +108,16 @@ void Canvas::setClip(int x, int y, int w, int h) {
108108 _clip->right = x + w;
109109 _clip->bottom = y + h;
110110 } else {
111- _clip = NULL ;
111+ _clip = nullptr ;
112112 }
113113}
114114
115115//
116116// Graphics implementation
117117//
118118Graphics::Graphics (android_app *app) : ui::Graphics(),
119- _fontBuffer(NULL ),
120- _fontBufferB(NULL ),
119+ _fontBuffer(nullptr ),
120+ _fontBufferB(nullptr ),
121121 _app(app),
122122 _w(0 ),
123123 _h(0 ),
@@ -129,8 +129,8 @@ Graphics::~Graphics() {
129129
130130 delete [] _fontBuffer;
131131 delete [] _fontBufferB;
132- _fontBuffer = NULL ;
133- _fontBufferB = NULL ;
132+ _fontBuffer = nullptr ;
133+ _fontBufferB = nullptr ;
134134}
135135
136136bool Graphics::construct (int fontId) {
@@ -157,16 +157,16 @@ bool Graphics::construct(int fontId) {
157157}
158158
159159void Graphics::redraw () {
160- if (_app->window != NULL && !_paused) {
160+ if (_app->window != nullptr && !_paused) {
161161 ANativeWindow_Buffer buffer;
162- bool locked = ANativeWindow_lock (_app->window , &buffer, NULL ) == 0 ;
162+ bool locked = ANativeWindow_lock (_app->window , &buffer, nullptr ) == 0 ;
163163 if (!locked) {
164164 trace (" Unable to lock window buffer" );
165165 } else {
166166 if (buffer.format != AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM) {
167167 ANativeWindow_unlockAndPost (_app->window );
168168 ANativeWindow_setBuffersGeometry (_app->window , 0 , 0 , AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM);
169- locked = ANativeWindow_lock (_app->window , &buffer, NULL ) == 0 ;
169+ locked = ANativeWindow_lock (_app->window , &buffer, nullptr ) == 0 ;
170170 trace (" Restore format %d" , locked);
171171 }
172172 if (locked) {
@@ -184,11 +184,22 @@ void Graphics::redraw() {
184184 }
185185}
186186
187- void Graphics::resize () {
188- delete _screen;
189- _screen = new Canvas ();
190- _screen->create (_w, _h);
191- _drawTarget = NULL ;
187+ bool Graphics::resize () {
188+ bool result;
189+ if (_screen == nullptr || _screen->_w != _w || _screen->_h != _h) {
190+ Canvas *newScreen = new Canvas ();
191+ result = newScreen->create (_w, _h);
192+ if (result) {
193+ delete _screen;
194+ _screen = newScreen;
195+ _drawTarget = nullptr ;
196+ } else {
197+ trace (" Failed to resize canvas" );
198+ }
199+ } else {
200+ result = true ;
201+ }
202+ return result;
192203}
193204
194205bool Graphics::loadFonts (int fontId) {
0 commit comments