I think an extension to the current directory based approach would work and be easiest to implement.
- All primitives must exist in ldraw/p
- Hi-res versions may exist in ldraw/p/48; tools running in hi-res mode should substitute the same named file from this folder, if it exists - effectively inserting ldraw/p/48 in the search path ahread of ldraw/p.
- Lo-res versions may exist in (the new folder) ldraw/p/8; tools running in lo-res mode should substitute the same named file from this folder, if it exists - effectively inserting ldraw/p/8 in the search path ahread of ldraw/p.
- The same could be done for ultra-hi-res or ultra-lo-res if there is a need.
No meta statement should be necessary to implement this. Adding a meta statement to the ldraw/p primitive would add unnecessary complexity to the library maintenance. Why should we have to update p/cyl5-16.dat when p/48/cyl5-16.dat is added to the library? Tools that need to know what hi-res or lo-res primitives exist can check the contents of the named folder, which should be less processing than reading the contents and parsing each file in ldraw/p.
All existing ldraw/p/stu2* file would need to be moved to ldraw/p/8/stud*, although we would have to leave leave the stu2* files as "~Moved to" files in ldraw/p.
- All primitives must exist in ldraw/p
- Hi-res versions may exist in ldraw/p/48; tools running in hi-res mode should substitute the same named file from this folder, if it exists - effectively inserting ldraw/p/48 in the search path ahread of ldraw/p.
- Lo-res versions may exist in (the new folder) ldraw/p/8; tools running in lo-res mode should substitute the same named file from this folder, if it exists - effectively inserting ldraw/p/8 in the search path ahread of ldraw/p.
- The same could be done for ultra-hi-res or ultra-lo-res if there is a need.
No meta statement should be necessary to implement this. Adding a meta statement to the ldraw/p primitive would add unnecessary complexity to the library maintenance. Why should we have to update p/cyl5-16.dat when p/48/cyl5-16.dat is added to the library? Tools that need to know what hi-res or lo-res primitives exist can check the contents of the named folder, which should be less processing than reading the contents and parsing each file in ldraw/p.
All existing ldraw/p/stu2* file would need to be moved to ldraw/p/8/stud*, although we would have to leave leave the stu2* files as "~Moved to" files in ldraw/p.
Chris (LDraw Parts Library Admin)