Re: [evince] Questions about adding 3DPDF support



It turned out that I was asking stupid questions without proper understanding...


I must apologize for bothering you.


I did not know until now that poppler itself does not support extraction of 3DD object from streams.


In order to support U3D preview in Evince, what I need to do first actually was to extend the Annot3D class which is kept private inside poppler

so that it can pass the binary content to glib frontend.


Currently I am thinking about just treating U3D (or PRC) data as a blackbox while it is handled within poppler and make Evince responsible for parsing it,

because afaik it is what being done to movies.


I am sorry for having taken your time for my misunderstandings.


On 2016年09月11日 01:59, IHARA Hiroka wrote:

Hello,


I was wondering if I could add partial 3DPDF (U3D) support to Evince.


The reference library out there on SourceForge by Intel, namely the Universal 3D Sample Software, seemed too complex to me,

so I am working on my own parser with limited functionality (without subdivision surface and adaptive tessellation) which is expected to eventually fit within 3,000 slocs as a source repo and 200KiB as an AMD64 Linux binary.


There is actually another 3DPDF format called PRC which is newer and better documented than U3D.

I find many similarities between PRC and U3D which could make it easier for future developers to add PRC support to perfect the 3DPDF conformance,

if a foundation for generic 3D preview is neatly constructed.


The problem is that I am a newbie to open source projects and I do not know where to start.

I will be very glad it you could lend me a helping hand, and be kind to answer a few questions about Evince.


1. Is it technically possible to have an OpenGL overlay on the document window?

All I need is a fixed function graphics viewport which would hopefully not require any Extension Wranglers.

PRC viewer might also be written without programmable shaders, though I am not quite convinced about that part.


2. Do I need to make the code independent of STL?

I could not find any example of libstdc++ use inside the Evince source code.

Is it permissible to heavily depend on the library for core algorithms?

I am asking this question because there seemed to be custom containers for general purpose implemented in the case of poppler.

Is STL being avoided in such projects, for security or license reasons?


3. What level of security is expected?

A lethal vulnerability issue was once reported related to CLoD Progressive Mesh (it is by far the most complicated part of the format) support by the embedded U3D viewer inside Acrobat Reader.

I personally think reaching a high level of security with any malformed input (malicious Progressive Meshes especially) would take a lot of time, partly because the official documentation is a complete crap when it comes to how they should be handled.

(As many others point out, U3D specification is full of unreason and imperfection, which I suspect is why they abandoned the format and moved to PRC.)

I wanted to ask if I need to protect the parser against all kinds of insanity. (If I manage to commit patches and the same thing happens to Evince, will I be blamed seriously? I am not saying that security is less important in Evince.)


I am always grateful about how Evince works flawlessly and I have deep respect to all those who contribute to the software.

Thank you.

--

Hiroka IHARA

Department of Information and Communication Engineering, The University of Tokyo

PC: ihara_h live jp



_______________________________________________
evince-list mailing list
evince-list gnome org
https://mail.gnome.org/mailman/listinfo/evince-list

-- 
Hiroka IHARA
Department of Information and Communication Engineering, The University of Tokyo
PC: ihara_h live jp


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]