Revision 1676 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/render/DefaultRender.java

View differences:

DefaultRender.java
351 351
			return;
352 352
	}
353 353
	
354
	/*
355
	 * (non-Javadoc)
356
	 * @see org.gvsig.fmap.dal.coverage.grid.render.Render#draw(java.awt.Graphics2D, org.cresques.geo.ViewPortData)
357
	 */
358
	public synchronized void draw(Graphics2D g, ViewPortData vp, TaskStatus taskStatus)
354
	public synchronized Buffer getLastRenderBuffer() 
359 355
		throws RasterDriverException, InvalidSetViewException, ProcessInterruptedException {
356
		return draw(null, lastViewPortData, null);
357
	}
358
	
359
	public synchronized Buffer draw(Graphics2D g, ViewPortData vp, TaskStatus taskStatus)
360
		throws RasterDriverException, InvalidSetViewException, ProcessInterruptedException {
360 361
		lastGraphics = g;
361 362
		lastViewPortData = vp;
362 363

  
363 364
		if(util.isOutside(vp.getExtent(), dataStore.getExtent())) {
364 365
			endReading();
365
			return;
366
			return null;
366 367
		}
367 368

  
368 369
		Extent adjustedRotedRequest = request(vp, dataStore);
369 370

  
370 371
		if ((widthImage <= 0) || (heightImage <= 0)) {
371 372
			endReading();
372
			return;
373
			return null;
373 374
		}
374 375

  
375 376
		if (dataStore == null) 
376
			return;
377
			return null;
377 378
		
378 379
		Buffer buf = null; 
379 380
		double[] step = null;
......
388 389
		} else {
389 390
			// Asignamos la banda de transparencia si existe esta
390 391
			RasterQuery query = DefaultRasterManager.getInstance().createQuery();
392
			//query.setReadOnly(true);
391 393
			query.setTaskStatus(taskStatus);
392 394
			query.setTime(vp.getTime());
393 395
			query.setSupersamplingLoadingBuffer(false); // Desactivamos el supersampleo en la carga del buffer.
......
411 413
			init();
412 414
		}
413 415
		
414
		drawBufferOnImage(lastGraphics, 
415
				lastViewPortData, 
416
				buf, 
417
				step, 
418
				dataStore.getAffineTransform(), 
419
				adjustedRotedRequest);
416
		return drawBufferOnImage(lastGraphics, 
417
					lastViewPortData, 
418
					buf, 
419
					step, 
420
					dataStore.getAffineTransform(), 
421
					adjustedRotedRequest);
420 422
	}
421 423
	
422 424
	/*
423 425
	 * (non-Javadoc)
424 426
	 * @see org.gvsig.fmap.dal.coverage.grid.render.Render#draw(java.awt.Graphics2D, org.cresques.geo.ViewPortData)
425 427
	 */
426
	private synchronized void drawBufferOnImage(Graphics2D g, ViewPortData vp, Buffer buf, double[] step, AffineTransform transf, Extent adjustedRotedRequest)
428
	private synchronized Buffer drawBufferOnImage(Graphics2D g, ViewPortData vp, Buffer buf, double[] step, AffineTransform transf, Extent adjustedRotedRequest)
427 429
		throws RasterDriverException, InvalidSetViewException, ProcessInterruptedException {
428 430
		
429 431
		grid = bufferPreprocessing(buf, lastTransparency);
430 432
		
431 433
		//Buffer filtrado para renderizar
432 434
		buf = grid.getRasterBuf();
435
		if(g == null)
436
			return buf;
433 437
		drawer.setBuffer(buf); // Buffer de datos a renderizar
434 438
		drawer.setSupersamplingOn(step); // Desplazamiento para supersampleo
435 439
		drawer.setOutputSize((int)Math.round(widthImage), (int)Math.round(heightImage)); // Ancho y alto del buffer
......
448 452
			Point2D lastGraphicOffset = new Point2D.Double(adjustedRotedRequest.getULX(), adjustedRotedRequest.getULY());
449 453
			((DefaultViewPortData)vp).mat.transform(lastGraphicOffset, lastGraphicOffset);
450 454
			g.drawImage(geoImage, (int) Math.round(lastGraphicOffset.getX()), (int) Math.round(lastGraphicOffset.getY()), null);
451
			return;
455
			return buf;
452 456
		}
453 457

  
454 458
		/*
......
485 489
			LoggerFactory.getLogger(getClass()).debug("Transformation error", e);
486 490
		}
487 491
		
488
		return;
492
		return buf;
489 493
		// long t2 = new Date().getTime();
490 494
		// System.out.println("Renderizando Raster: " + ((t2 - t1) / 1000D) + ", secs.");
491 495
	}

Also available in: Unified diff