micahpearlman / MonkVG

MonkVG is an OpenVG 1.1 like vector graphics API implementation optimized for game use currently using an OpenGL ES backend that should be compatible with any HW that supports OpenGL ES 2.0 which includes most iOS and Android devices.
Other
376 stars 66 forks source link

how to run iOS test? #2

Closed bsabiston closed 12 years ago

bsabiston commented 12 years ago

Hi,

I wanted to run the iOS test project. In Xcode when I hit the 'Run' button it only builds the project, but it does not run it. Do you know how to get it to run, either on a device or in the simulator?

micahpearlman commented 12 years ago

Do you have the correct scheme selected?

bsabiston commented 12 years ago

Thanks for replying -- that was the problem, I had just the library scheme selected, thank you.

However now I get these errors trying to compile, do you know what it could be? Thanks Bob

On Nov 9, 2011, at 6:00 PM, Micah Pearlman wrote:

Do you have the correct scheme selected?


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2689579

micahpearlman commented 12 years ago

What errors?

bsabiston commented 12 years ago

Sorry - I sent a screen shot but it must not have gone through.

I just get two errors where it cannot find the two files in these include statements. I see them so it must be some sort of path problem? Or maybe I need to precompile a header or something?

Lexical or Preprocessor Issue

include <vg/openvg.h>

include <vg/vgu.h>

Thanks Bob

On Nov 9, 2011, at 8:22 PM, Micah Pearlman wrote:

What errors?


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2690717

bsabiston commented 12 years ago

I got it work work by changing all the references to those directory headers to an explicit path:

include </Users/bob/Desktop/iphone/micahpearlman-MonkVG-4451641/include/VG/openvg.h>

For some reason using a relative path like #include "../../../VG" did not work. Also fixing the difference in case between 'vg' and 'VG' did not seem to do anything.

If you know of a better way than the full path please let me know -- otherwise thanks for your help!

Bob

On Nov 9, 2011, at 8:22 PM, Micah Pearlman wrote:

What errors?


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2690717

micahpearlman commented 12 years ago

The project expects that you installed everything into the directory "MonkVG" not "micahpearlman-MonkVG-4451641"

bsabiston commented 12 years ago

Thanks, that works now! The test project runs on my phone.

I still run into trouble trying to get it working in my own project though. Do you have time for another question?

I was able to drag the MunkVG Xcode project into my own, and I added its include directory to my projects Header paths. I also added to the Build Phases of my project, the library file "lbMonkVG_iOS_OpenGL.a", which it listed as being part of the XCode workspace -- I am not actually sure where that file is. These steps I did after getting compile errors related (I think) to not having added the library or include paths to my project build settings.

Anyway now it compiles but gives me a link error:

Ld /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Intermediates/Voxel.build/Debug-iphoneos/EGEO.build/Objects-normal/armv6/EGEO normal armv6 cd /Users/bob/Desktop/iphone/Voxel setenv IPHONEOS_DEPLOYMENT_TARGET 3.2 setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang++ -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos -F/Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos -filelist /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Intermediates/Voxel.build/Debug-iphoneos/EGEO.build/Objects-normal/armv6/EGEO.LinkFileList -dead_strip -miphoneos-version-min=3.2 /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos/libMonkVG_iOS_OpenGL.a -framework Foundation -weak_framework UIKit -framework CoreGraphics -framework OpenGLES -framework QuartzCore -framework CFNetwork -framework AudioToolbox -weak_framework MessageUI -lxml2.2 -framework StoreKit -framework Security -framework AVFoundation -o /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Intermediates/Voxel.build/Debug-iphoneos/EGEO.build/Objects-normal/armv6/EGEO

ld: warning: ignoring file /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos/libMonkVG_iOS_OpenGL.a, file was built for archive which is not the architecture being linked (armv6) Undefined symbols for architecture armv6: "_gluTessEndContour", referenced from: ZN9Tess_Poly11End_ContourEv in egeo.o "_gluTessEndPolygon", referenced from: __ZN9Tess_Poly11End_PolygonEv in egeo.o "_gluTessBeginContour", referenced from: ZN9Tess_Poly13Begin_ContourEv in egeo.o "_gluTessBeginPolygon", referenced from: ZN9Tess_Poly13Begin_PolygonEv in egeo.o "_gluNewTess", referenced from: ZN9Tess_Poly4InitEv in egeo.o "_gluTessProperty", referenced from: ZN9Tess_Poly16Set_Winding_RuleEj in egeo.o ZN9Tess_Poly17Set_Boundary_OnlyEa in egeo.o "_gluTessCallback", referenced from: __ZN9Tess_Poly4InitEv in egeo.o ld: symbol(s) not found for architecture armv6 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Do you know what the problem is besides me being a moron? Please forgive me if these are ignorant questions, I have not included one XCode project within another before, and I'm shaky on the use of libraries.

Thanks, Bob

On Nov 10, 2011, at 11:04 AM, Micah Pearlman wrote:

The project expects that you installed everything into the directory "MonkVG" not "micahpearlman-MonkVG-4451641"


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2697878

micahpearlman commented 12 years ago

I would guess:

ld: warning: ignoring file /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos/libMonkVG_iOS_OpenGL.a, file was built for archive which is not the architecture being linked (armv6)

Would be a hint. Sorry, but I'm not an expert on how to use XCode.

bsabiston commented 12 years ago

I got it to work! Not exactly sure how. One thing I had forgotten was to add MonkVG to the Target Dependencies under the Build Phases tab. I had only added it to "Link Binary With Libraries" section before.

The other thing I did was go through and change the 'Architectures" under the Build Settings to be both armv6 and armv7. With XCode4 it has recently started leaving out one of them, and that is probably what the problem was.

Thanks! Bob

On Nov 10, 2011, at 12:49 PM, Micah Pearlman wrote:

I would guess:

ld: warning: ignoring file /Users/bob/Library/Developer/Xcode/DerivedData/Voxel-feiijazkmmkqehbmctcmaszabhor/Build/Products/Debug-iphoneos/libMonkVG_iOS_OpenGL.a, file was built for archive which is not the architecture being linked (armv6)

Would be a hint. Sorry, but I'm not an expert on how to use XCode.


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2699319

micahpearlman commented 12 years ago

No problem. Hope you find MonkVG useful!

Cheers, -Micah

bsabiston commented 12 years ago

Hello again,

I wanted to use MonkVG for the tesselation, because I haven't gotten other libraries like iphone-lgu to work. But I haven't gotten the tesselation in MonkVG to work either -- have you tried it?

Thanks Bob

On Nov 10, 2011, at 6:52 PM, Micah Pearlman wrote:

No problem. Hope you find MonkVG useful!

Cheers, -Micah


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2703588

micahpearlman commented 12 years ago

I don't understand what you are wanting to achieve? What in the OpenVG spec is not working for you?

http://www.khronos.org/registry/vg/specs/openvg_1_0_1.pdf

bsabiston commented 12 years ago

The polygon tesselation does not seem to work for me -- the libtess library, in other words. The callbacks return garbage data. I was just wondering if you had used that. I've had a hard time finding a library for polygon tesselation that works on iphone.

Thanks Bob

On Nov 14, 2011, at 10:44 AM, Micah Pearlman wrote:

I don't understand what you are wanting to achieve? What in the OpenVG spec is not working for you?

http://www.khronos.org/registry/vg/specs/openvg_1_0_1.pdf


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2732763

micahpearlman commented 12 years ago

The GLUT tessellation library works great for MonkVG. MonkVG does not directly expose any of the internal contour to polygon tessellation. There are plenty of web resources and if you look at "glPath.h/cpp" it show how MonkVG uses the GLUT tessellation library. Also, take a look at http://www.flipcode.com/archives/Polygon_Tessellation_In_OpenGL.shtml or try asking questions on StackOverflow.

bsabiston commented 12 years ago

OK thanks I guess I will keep trying -- I started with that flipcode link -- that page has some errors but that is basically the code that is not working for me on the iphone.

Thanks again for your response, Bob

On Nov 14, 2011, at 11:32 AM, Micah Pearlman wrote:

The GLUT tessellation library works great for MonkVG. MonkVG does not directly expose any of the internal contour to polygon tessellation. There are plenty of web resources and if you look at "glPath.h/cpp" it show how MonkVG uses the GLUT tessellation library. Also, take a look at http://www.flipcode.com/archives/Polygon_Tessellation_In_OpenGL.shtml or try asking questions on StackOverflow.


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2733550

bsabiston commented 12 years ago

Hello, I am sorry to keep bothering you. It's ok if you don't have time to deal with this.

I am still trying to find a tessellation solution for my project. I thought I would start from the high-end this time, and maybe just trying to draw a polygon within the MonkVG sample Test project. So between the included calls to a radial-gradiant ellipse and a linear gradient box, I stuck a call to vguPolygon. But when I try to compile, I get an error of 'no matching function call to vguPolygon'. I don't understand how that could be, since the function is clearly there, along with vguEllipse which is called and working no problem.

I know this must me something stupid but I cannot see it. Do you know how that might happen? I tried cleaning, rebuilding both the library and then the project.

Here is the code I used if that is any help. There must be something fundamental about the way this is installed that I am not getting. I may try one of the other test projects (OS X, Quartz, Windows?).
Are all of the test projects the same?

Thanks, Bob

   const VGfloat bobpoints[10*2] = {
        0.0,0.0,
        1.0,0.0,
        1.0,1.0,
        2.0,1.0,
        2.0,2.0,
        3.0,2.0,
        3.0,3.0,
        4.0,3.0,
        4.0,4.0,
        5.0,4.0
    };

   VGPath bobpath = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,1,0,0,0, VG_PATH_CAPABILITY_ALL);
   VGint bobcount = 10;

    vguPolygon(bobpath, bobpoints, bobcount, true); // true closed

// resume MongVG-Test-iOS-OpenGL code here _radialGradientPaint = vgCreatePaint(); vgSetParameteri(_radialGradientPaint, VG_PAINT_TYPE, VG_PAINT_TYPE_RADIAL_GRADIENT); float afRadialGradient[5] = {45,25,45,25,45.0f }; // { cx, cy, fx, fy, r }. vgSetParameterfv(_radialGradientPaint, VG_PAINT_RADIAL_GRADIENT, 5, afRadialGradient); vgSetParameterfv(_radialGradientPaint, VG_PAINT_COLOR_RAMP_STOPS, 15, &stops[0][0]);

On Nov 14, 2011, at 11:32 AM, Micah Pearlman wrote:

The GLUT tessellation library works great for MonkVG. MonkVG does not directly expose any of the internal contour to polygon tessellation. There are plenty of web resources and if you look at "glPath.h/cpp" it show how MonkVG uses the GLUT tessellation library. Also, take a look at http://www.flipcode.com/archives/Polygon_Tessellation_In_OpenGL.shtml or try asking questions on StackOverflow.


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2733550

micahpearlman commented 12 years ago

Bob,

The XCode 4 error is pretty explicit on what the issue is. Your function needs to be:

vguPolygon(bobpath, bobpoints, bobcount, VG_TRUE); // true closed

Note the difference between "true" and "VG_TRUE". You should take the time to look at your compiler error reports. I am more then happy to help out with OpenVG/MonkVG issues, but I can't really keep on taking the time to help users on how to use XCode. There are other forums for these sorts of issues.

Cheers, -Micah

bsabiston commented 12 years ago

OK, I do appreciate you taking the time in this instance. I never would have guessed that 'true' would not be a valid argument to a VGboolean.

Plus in my experience XCode usually will pinpoint what the problem is, not just say there is no matching function. I've been programming quite a while, I guess I just haven't seen that kind of error dealt with in that way before. I had a feeling it had nothing to do with your library, I just couldn't see what the problem was.

Again thanks a lot, I'll try work it out on my own from here if I can.

Bob

On Nov 16, 2011, at 2:46 PM, Micah Pearlman wrote:

Bob,

The XCode 4 error is pretty explicit on what the issue is. Your function needs to be:

vguPolygon(bobpath, bobpoints, bobcount, VG_TRUE); // true closed

Note the difference between "true" and "VG_TRUE". You should take the time to look at your compiler error reports. I am more then happy to help out with OpenVG/MonkVG issues, but I can't really keep on taking the time to help users on how to use XCode. There are other forums for these sorts of issues.

Cheers, -Micah


Reply to this email directly or view it on GitHub: https://github.com/micahpearlman/MonkVG/issues/2#issuecomment-2767616