[vtk-developers] Factory issue for new VBO and VertexArray painters

David E DeMarle dave.demarle at kitware.com
Tue Mar 18 10:47:58 EDT 2014


If the test doesn't do an image comparison, tell cmake about it like so:

vtk_add_test_cxx(name.cxx [NO_DATA] [NO_VALID] [NO_OUTPUT])
NO_DATA indicates that this test doesn't require any input data files
--> NO_VALID indicates that this test doesn't compare results against
baseline images
NO_OUTPUT indicates that the test doesn't produce any output files

(for more details see the vtk software process document)

hth

David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909


On Tue, Mar 18, 2014 at 10:35 AM, Xabi Riobe <xabivtk at gmail.com> wrote:

> Thanks David!
>
> Currently my test is only about rendering speed acceleration, and not for
> the resulting image.
> So I do not need vtkRegressionTestImage. But after reading your link, I
> assume I *have to* generate one?
>
> I will try to add it, but by curiosity is there another command
> than vtk_add_test_cxx to put in CMakeLists.txt to get rid of the regression
> test, or every OpenGL test must come with an image?
>
>
> 2014-03-18 14:11 GMT+01:00 David E DeMarle <dave.demarle at kitware.com>:
>
> This warning comes from the new way (starting in 6.1) in which regression
>> tests get their data.
>>
>> Move the regression test baseline image into:
>> C:/Dev/vtk-gerrit/VTK/Rendering/OpenGL/Testing/Data/Baseline/
>> TestVBOandVertexArray.png
>>
>> Run cmake, that will replace the above file with:
>> C:/Dev/vtk-gerrit/VTK/Rendering/OpenGL/Testing/Data/Baseline/
>> TestVBOandVertexArray.png.md5
>> And move the original into the bowels of git for safe keeping.
>>
>> Now when you push to gerrit the regression test image and the
>> corresponding source code get committed together.
>>
>> See http://www.vtk.org/Wiki/VTK/Git/Develop/Data
>> for more details.
>>
>>
>> David E DeMarle
>> Kitware, Inc.
>> R&D Engineer
>> 21 Corporate Drive
>> Clifton Park, NY 12065-8662
>> Phone: 518-881-4909
>>
>>
>> On Thu, Mar 13, 2014 at 10:45 AM, Xabi Riobe <xabivtk at gmail.com> wrote:
>>
>>> As a side question,
>>> I got this message during the Configure step in CMake 2.8.12.2 when
>>> adding my test in Rendering\OpenGL\Testing\Cxx:
>>>
>>>
>>> Data file referenced by argument
>>>
>>>
>>> DATA{C:/Dev/vtk-gerrit/VTK/Rendering/OpenGL/Testing/Data/Baseline/TestVBOandVertexArray.png,:}
>>>
>>> corresponds to source tree path
>>>
>>> Rendering/OpenGL/Testing/Data/Baseline/TestVBOandVertexArray.png
>>>
>>> that does not exist as a file (with or without an extension)!
>>>
>>>
>>> What produces it?
>>> I added this line in the CMakeLists.txt file:
>>>
>>> # For tests that actually use a vtkRenderWindow
>>> vtk_add_test_cxx(
>>> ...
>>> TestVBOandVertexArray.cxx          <=== line added
>>> )
>>>
>>> and the test is correctly inserted to vtkRenderingOpenGLCxxTests.exe
>>>
>>>
>>>
>>> 2014-03-13 15:31 GMT+01:00 Xabi Riobe <xabivtk at gmail.com>:
>>>
>>> Hi,
>>>> I have a set of painter classes using VBO (adapted from VTKEdge) and
>>>> VertexArrays that i'm willing to share via gerrit, but there is an issue i
>>>> would like to resolve before, in order to add the test class.
>>>>
>>>> Currently i use them with vtk 5.10.1, and i have a rendering factory to
>>>> instantiate them instead of vtkPolygonsPainter, vtkLinesPainter
>>>> and vtkTStripsPainter.
>>>>
>>>> but with vtk 6.1, the factory mechanism has changed and i can not
>>>> manage to make it work properly. So i first try to localy test my classes
>>>> with the new version by incorporating them directly in
>>>> vtkRenderingOpenGLObjectFactory, adding these lines in
>>>> Rendering\OpenGL\CMakeLists.txt :
>>>>
>>>> list(APPEND vtk_module_overrides "vtkPolygonsPainter")
>>>> set(vtk_module_vtkPolygonsPainter_override
>>>> "vtkOpenGLVertexArrayPolygonsPainter")
>>>>
>>>> Runing my test in debug, i can see that the class is added in the
>>>> factory, but when the vtkChooserPainter creates the vtkPolygonsPainter, my
>>>> own class is not instantiated, nor it is if i directly call
>>>> vtkPolygonsPainter::New() in the test.
>>>>
>>>> Is there something else i am missing to use my class in a factory with
>>>> vtk 6.1?
>>>>
>>>> Thanks
>>>>
>>>>
>>>> extract from my own factory code:
>>>>
>>>>  class vtkRenderingVertexArrayFactory
>>>>    : public vtkObjectFactory
>>>> {
>>>> public:
>>>>    static vtkRenderingVertexArrayFactory* New();
>>>>    vtkTypeMacro(vtkRenderingVertexArrayFactory, vtkObjectFactory);
>>>>    static void RegisterFactory();
>>>> protected:
>>>>    vtkRenderingVertexArrayFactory();
>>>> private:
>>>>    vtkRenderingVertexArrayFactory(const
>>>> vtkRenderingVertexArrayFactory&); // Not implemented.
>>>>    void operator=(const vtkRenderingVertexArrayFactory&); // Not
>>>> implemented.
>>>> };
>>>>
>>>> vtkStandardNewMacro(vtkRenderingVertexArrayFactory);
>>>>
>>>> VTK_FACTORY_INTERFACE_IMPLEMENT(vtkRenderingVertexArrayFactory);
>>>>
>>>> VTK_CREATE_CREATE_FUNCTION(vtkOpenGLVertexArrayPolygonsPainter);
>>>>
>>>> vtkRenderingVertexArrayFactory::vtkRenderingVertexArrayFactory()
>>>> {
>>>>    this->RegisterOverride("vtkPolygonsPainter",
>>>>                           "vtkOpenGLVertexArrayPolygonsPainter",
>>>>                           "Override for vtkRenderingOpenGL module",
>>>>                           1,
>>>>
>>>> vtkObjectFactoryCreatevtkOpenGLVertexArrayPolygonsPainter);
>>>> }
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20140318/6dbfc48c/attachment-0002.html>


More information about the vtk-developers mailing list