equal
deleted
inserted
replaced
37 iPathHandleCount = 0; |
37 iPathHandleCount = 0; |
38 iEncodedData = 0; |
38 iEncodedData = 0; |
39 iHandle = 1; |
39 iHandle = 1; |
40 iCommonHeaderLength = 0; |
40 iCommonHeaderLength = 0; |
41 iCommonHeader = 0; |
41 iCommonHeader = 0; |
|
42 iVgErrorCode = VG_NO_ERROR; |
42 } |
43 } |
43 |
44 |
44 CPseodoVGRendererImpl::~CPseodoVGRendererImpl() |
45 CPseodoVGRendererImpl::~CPseodoVGRendererImpl() |
45 { |
46 { |
46 delete iEncodedData; |
47 delete iEncodedData; |
230 #endif |
231 #endif |
231 } |
232 } |
232 |
233 |
233 TUint CPseodoVGRendererImpl::vgCreatePaint() |
234 TUint CPseodoVGRendererImpl::vgCreatePaint() |
234 { |
235 { |
|
236 if(iVgErrorCode != VG_NO_ERROR) |
|
237 return VG_INVALID_HANDLE; |
|
238 |
235 iHandle++; |
239 iHandle++; |
236 EncodeInt8(EvgCreatePaint); |
240 EncodeInt8(EvgCreatePaint); |
237 EncodeInt32(iHandle); |
241 EncodeInt32(iHandle); |
238 #ifdef VGRENDERER_LOG |
242 #ifdef VGRENDERER_LOG |
239 iLog.WriteFormat(_L("vgCreatePaint")); |
243 iLog.WriteFormat(_L("vgCreatePaint")); |
242 } |
246 } |
243 |
247 |
244 TUint CPseodoVGRendererImpl::vgCreatePath(TInt pathFormat, TInt datatype, TReal32 scale, TReal32 bias, |
248 TUint CPseodoVGRendererImpl::vgCreatePath(TInt pathFormat, TInt datatype, TReal32 scale, TReal32 bias, |
245 TInt segmentCapacityHint, TInt coordCapacityHint, TInt capabilities) |
249 TInt segmentCapacityHint, TInt coordCapacityHint, TInt capabilities) |
246 { |
250 { |
|
251 if(iVgErrorCode != VG_NO_ERROR) |
|
252 return VG_INVALID_HANDLE; |
|
253 |
|
254 |
247 iHandle++; |
255 iHandle++; |
248 EncodeInt8(EvgCreatePath); |
256 EncodeInt8(EvgCreatePath); |
249 EncodeInt32(pathFormat); |
257 EncodeInt32(pathFormat); |
250 EncodeInt8(datatype); |
258 EncodeInt8(datatype); |
251 EncodeReal32(scale); |
259 EncodeReal32(scale); |
381 EncodeInt8(EvgDrawPath); |
389 EncodeInt8(EvgDrawPath); |
382 EncodeInt32(path); |
390 EncodeInt32(path); |
383 EncodeInt16(capabilities); |
391 EncodeInt16(capabilities); |
384 |
392 |
385 #ifdef VGRENDERER_LOG |
393 #ifdef VGRENDERER_LOG |
386 LogvgDrawPath(paintModes,0); |
394 LogvgDrawPath(path,0); |
387 #endif |
395 #endif |
388 |
396 |
389 } |
397 } |
390 |
398 |
391 void CPseodoVGRendererImpl::vgClearPath(TUint path, TUint capabilities) |
399 void CPseodoVGRendererImpl::vgClearPath(TUint path, TUint capabilities) |
458 return KErrNone; |
466 return KErrNone; |
459 } |
467 } |
460 |
468 |
461 TUint CPseodoVGRendererImpl::vgCreateImage(TInt format, TInt width, TInt height, TInt allowedQuality) |
469 TUint CPseodoVGRendererImpl::vgCreateImage(TInt format, TInt width, TInt height, TInt allowedQuality) |
462 { |
470 { |
|
471 if(iVgErrorCode != VG_NO_ERROR) |
|
472 return VG_INVALID_HANDLE; |
|
473 |
463 iHandle++; |
474 iHandle++; |
464 EncodeInt8(EvgCreateImage); |
475 EncodeInt8(EvgCreateImage); |
465 EncodeInt32(format); |
476 EncodeInt32(format); |
466 EncodeInt32(width); |
477 EncodeInt32(width); |
467 EncodeInt32(height); |
478 EncodeInt32(height); |
468 EncodeInt8(allowedQuality); |
479 EncodeInt8(allowedQuality); |
469 EncodeInt32(iHandle); |
480 EncodeInt32(iHandle); |
|
481 #ifdef VGRENDERER_LOG |
|
482 iLog.WriteFormat(_L("vgcreateimage")); |
|
483 #endif |
470 return iHandle; |
484 return iHandle; |
471 } |
485 } |
472 |
486 |
473 void CPseodoVGRendererImpl::vgGetPixels(TUint /*dst*/, TInt /*dx*/, TInt /*dy*/, TInt /*sx*/, TInt /*sy*/, TInt /*width*/, TInt /*height*/) |
487 void CPseodoVGRendererImpl::vgGetPixels(TUint /*dst*/, TInt /*dx*/, TInt /*dy*/, TInt /*sx*/, TInt /*sy*/, TInt /*width*/, TInt /*height*/) |
474 { |
488 { |
477 |
491 |
478 void CPseodoVGRendererImpl::vgDrawImage(TUint image) |
492 void CPseodoVGRendererImpl::vgDrawImage(TUint image) |
479 { |
493 { |
480 EncodeInt8(EvgDrawImage); |
494 EncodeInt8(EvgDrawImage); |
481 EncodeInt32(image); |
495 EncodeInt32(image); |
|
496 #ifdef VGRENDERER_LOG |
|
497 iLog.WriteFormat(_L("vgdrawimage")); |
|
498 #endif |
482 } |
499 } |
483 |
500 |
484 void CPseodoVGRendererImpl::vgClearImage(TUint image, TInt x, TInt y, TInt width, TInt height) |
501 void CPseodoVGRendererImpl::vgClearImage(TUint image, TInt x, TInt y, TInt width, TInt height) |
485 { |
502 { |
486 EncodeInt8(EvgClearImage); |
503 EncodeInt8(EvgClearImage); |
487 EncodeInt32(image); |
504 EncodeInt32(image); |
488 EncodeInt32(x); |
505 EncodeInt32(x); |
489 EncodeInt32(y); |
506 EncodeInt32(y); |
490 EncodeInt32(width); |
507 EncodeInt32(width); |
491 EncodeInt32(height); |
508 EncodeInt32(height); |
|
509 #ifdef VGRENDERER_LOG |
|
510 iLog.WriteFormat(_L("vgclearimage")); |
|
511 #endif |
492 } |
512 } |
493 |
513 |
494 void CPseodoVGRendererImpl::vgImageSubData(TUint image, const void * data, TInt dataStride, |
514 void CPseodoVGRendererImpl::vgImageSubData(TUint image, const void * data, TInt dataStride, |
495 TInt dataFormat, TInt x, TInt y, TInt width, TInt height) |
515 TInt dataFormat, TInt x, TInt y, TInt width, TInt height) |
496 { |
516 { |
621 } while( --height ); |
641 } while( --height ); |
622 |
642 |
623 |
643 |
624 EncodeData(dstData, dataLength); |
644 EncodeData(dstData, dataLength); |
625 delete [] dstData; |
645 delete [] dstData; |
|
646 #ifdef VGRENDERER_LOG |
|
647 iLog.WriteFormat(_L("vgimagesubdata")); |
|
648 #endif |
626 } |
649 } |
627 else |
650 else |
628 { |
651 { |
629 |
652 |
630 #ifdef VGRENDERER_LOG |
653 #ifdef VGRENDERER_LOG |
646 |
669 |
647 void CPseodoVGRendererImpl::vgDestroyImage(TUint aHandle) |
670 void CPseodoVGRendererImpl::vgDestroyImage(TUint aHandle) |
648 { |
671 { |
649 EncodeInt8(EvgDestroyImage); |
672 EncodeInt8(EvgDestroyImage); |
650 EncodeInt32(aHandle); |
673 EncodeInt32(aHandle); |
|
674 #ifdef VGRENDERER_LOG |
|
675 iLog.WriteFormat(_L("vgdestroyimage")); |
|
676 #endif |
651 } |
677 } |
652 |
678 |
653 void CPseodoVGRendererImpl::vgDestroyPaint(TUint /*aHandle*/) |
679 void CPseodoVGRendererImpl::vgDestroyPaint(TUint /*aHandle*/) |
654 { |
680 { |
655 //TODO |
681 //TODO |
665 //TODO |
691 //TODO |
666 } |
692 } |
667 |
693 |
668 TInt CPseodoVGRendererImpl::vgGetError() |
694 TInt CPseodoVGRendererImpl::vgGetError() |
669 { |
695 { |
670 //TODO |
696 return iVgErrorCode; |
671 return 0; |
|
672 } |
697 } |
673 |
698 |
674 MVGSurfaceImpl* CPseodoVGRendererImpl::CreateVGSurfaceL(TInt /*aOption*/) |
699 MVGSurfaceImpl* CPseodoVGRendererImpl::CreateVGSurfaceL(TInt /*aOption*/) |
675 { |
700 { |
676 return CPseudoVGSurfaceImpl::NewL(this); |
701 return CPseudoVGSurfaceImpl::NewL(this); |
706 return EncodeData(&aVal, sizeof(aVal)); |
731 return EncodeData(&aVal, sizeof(aVal)); |
707 } |
732 } |
708 |
733 |
709 TInt CPseodoVGRendererImpl::EncodeData(const TAny *aData, TUint aLength) |
734 TInt CPseodoVGRendererImpl::EncodeData(const TAny *aData, TUint aLength) |
710 { |
735 { |
711 TInt result = KErrNone; |
736 |
712 TPtr8 lPtr( iEncodedData->Des() ); |
737 if(iVgErrorCode==VG_NO_ERROR) |
713 TInt encodedDataLength = lPtr.Length() + aLength; |
738 { |
714 TInt encodedDataMaxLength = lPtr.MaxLength(); |
739 TInt result = KErrNone; |
|
740 TPtr8 lPtr( iEncodedData->Des() ); |
|
741 TInt encodedDataLength = lPtr.Length() + aLength; |
|
742 TInt encodedDataMaxLength = lPtr.MaxLength(); |
715 |
743 |
716 if (encodedDataLength >= encodedDataMaxLength) |
744 if (encodedDataLength >= encodedDataMaxLength) |
717 { |
745 { |
718 if ((result = ExpandEncodedData(encodedDataLength)) == KErrNone) |
746 if ((result = ExpandEncodedData(encodedDataLength)) == KErrNone) |
719 { |
747 { |
724 else |
752 else |
725 { |
753 { |
726 lPtr.Append((TUint8*)(aData), aLength); |
754 lPtr.Append((TUint8*)(aData), aLength); |
727 } |
755 } |
728 |
756 |
729 return result; |
757 return result; |
|
758 } |
|
759 else |
|
760 { |
|
761 return iVgErrorCode; |
|
762 } |
730 } |
763 } |
731 |
764 |
732 TInt CPseodoVGRendererImpl::ExpandEncodedData(TUint aNewLength) |
765 TInt CPseodoVGRendererImpl::ExpandEncodedData(TUint aNewLength) |
733 { |
766 { |
734 TInt result = KErrNone; |
767 TInt result = KErrNone; |
738 HBufC8 * tmpBuf = HBufC8::New(encodedDataMaxLength + granularities * CPseodoVGRendererImpl::ENCODEDDATAGRANULARITY); |
771 HBufC8 * tmpBuf = HBufC8::New(encodedDataMaxLength + granularities * CPseodoVGRendererImpl::ENCODEDDATAGRANULARITY); |
739 |
772 |
740 if (tmpBuf == 0) |
773 if (tmpBuf == 0) |
741 { |
774 { |
742 result = KErrNoMemory; |
775 result = KErrNoMemory; |
|
776 iVgErrorCode = VG_OUT_OF_MEMORY_ERROR; |
743 } |
777 } |
744 |
778 |
745 else |
779 else |
746 { |
780 { |
747 TPtr8 tmpBufPtr (tmpBuf->Des()); |
781 TPtr8 tmpBufPtr (tmpBuf->Des()); |
755 } |
789 } |
756 |
790 |
757 |
791 |
758 void CPseodoVGRendererImpl::EmptyEncodedData() |
792 void CPseodoVGRendererImpl::EmptyEncodedData() |
759 { |
793 { |
|
794 iVgErrorCode = VG_NO_ERROR; |
|
795 if(iEncodedData->Length() > CPseodoVGRendererImpl::ENCODEDDATALENGTH) |
|
796 { |
|
797 delete iEncodedData; |
|
798 iEncodedData = HBufC8::New(CPseodoVGRendererImpl::ENCODEDDATALENGTH); |
|
799 if(!iEncodedData) |
|
800 { |
|
801 iVgErrorCode = VG_OUT_OF_MEMORY_ERROR; |
|
802 return; |
|
803 } |
|
804 } |
760 TPtr8 lPtr( iEncodedData->Des() ); |
805 TPtr8 lPtr( iEncodedData->Des() ); |
761 lPtr.Zero(); |
806 lPtr.Zero(); |
762 WriteHeader(); |
807 WriteHeader(); |
763 |
808 |
764 #ifdef VGRENDERER_LOG |
809 #ifdef VGRENDERER_LOG |