OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef GrGLInterface_DEFINED | 8 #ifndef GrGLInterface_DEFINED |
9 #define GrGLInterface_DEFINED | 9 #define GrGLInterface_DEFINED |
10 | 10 |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 GLPtr<GrGLInvalidateFramebufferProc> fInvalidateFramebuffer; | 233 GLPtr<GrGLInvalidateFramebufferProc> fInvalidateFramebuffer; |
234 GLPtr<GrGLInvalidateSubFramebufferProc> fInvalidateSubFramebuffer; | 234 GLPtr<GrGLInvalidateSubFramebufferProc> fInvalidateSubFramebuffer; |
235 GLPtr<GrGLInvalidateTexImageProc> fInvalidateTexImage; | 235 GLPtr<GrGLInvalidateTexImageProc> fInvalidateTexImage; |
236 GLPtr<GrGLInvalidateTexSubImageProc> fInvalidateTexSubImage; | 236 GLPtr<GrGLInvalidateTexSubImageProc> fInvalidateTexSubImage; |
237 GLPtr<GrGLLineWidthProc> fLineWidth; | 237 GLPtr<GrGLLineWidthProc> fLineWidth; |
238 GLPtr<GrGLLinkProgramProc> fLinkProgram; | 238 GLPtr<GrGLLinkProgramProc> fLinkProgram; |
239 GLPtr<GrGLMapBufferProc> fMapBuffer; | 239 GLPtr<GrGLMapBufferProc> fMapBuffer; |
240 GLPtr<GrGLMapBufferRangeProc> fMapBufferRange; | 240 GLPtr<GrGLMapBufferRangeProc> fMapBufferRange; |
241 GLPtr<GrGLMapBufferSubDataProc> fMapBufferSubData; | 241 GLPtr<GrGLMapBufferSubDataProc> fMapBufferSubData; |
242 GLPtr<GrGLMapTexSubImage2DProc> fMapTexSubImage2D; | 242 GLPtr<GrGLMapTexSubImage2DProc> fMapTexSubImage2D; |
| 243 GLPtr<GrGLMatrixLoadfProc> fMatrixLoadf; |
| 244 GLPtr<GrGLMatrixLoadIdentityProc> fMatrixLoadIdentity; |
243 GLPtr<GrGLPixelStoreiProc> fPixelStorei; | 245 GLPtr<GrGLPixelStoreiProc> fPixelStorei; |
244 GLPtr<GrGLPopGroupMarkerProc> fPopGroupMarker; | 246 GLPtr<GrGLPopGroupMarkerProc> fPopGroupMarker; |
245 GLPtr<GrGLPushGroupMarkerProc> fPushGroupMarker; | 247 GLPtr<GrGLPushGroupMarkerProc> fPushGroupMarker; |
246 GLPtr<GrGLQueryCounterProc> fQueryCounter; | 248 GLPtr<GrGLQueryCounterProc> fQueryCounter; |
247 GLPtr<GrGLRasterSamplesProc> fRasterSamples; | 249 GLPtr<GrGLRasterSamplesProc> fRasterSamples; |
248 GLPtr<GrGLReadBufferProc> fReadBuffer; | 250 GLPtr<GrGLReadBufferProc> fReadBuffer; |
249 GLPtr<GrGLReadPixelsProc> fReadPixels; | 251 GLPtr<GrGLReadPixelsProc> fReadPixels; |
250 GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; | 252 GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; |
251 | 253 |
252 // On OpenGL ES there are multiple incompatible extensions that add sup
port for MSAA | 254 // On OpenGL ES there are multiple incompatible extensions that add sup
port for MSAA |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 GLPtr<GrGLUnmapBufferSubDataProc> fUnmapBufferSubData; | 316 GLPtr<GrGLUnmapBufferSubDataProc> fUnmapBufferSubData; |
315 GLPtr<GrGLUnmapTexSubImage2DProc> fUnmapTexSubImage2D; | 317 GLPtr<GrGLUnmapTexSubImage2DProc> fUnmapTexSubImage2D; |
316 GLPtr<GrGLUseProgramProc> fUseProgram; | 318 GLPtr<GrGLUseProgramProc> fUseProgram; |
317 GLPtr<GrGLVertexAttrib1fProc> fVertexAttrib1f; | 319 GLPtr<GrGLVertexAttrib1fProc> fVertexAttrib1f; |
318 GLPtr<GrGLVertexAttrib2fvProc> fVertexAttrib2fv; | 320 GLPtr<GrGLVertexAttrib2fvProc> fVertexAttrib2fv; |
319 GLPtr<GrGLVertexAttrib3fvProc> fVertexAttrib3fv; | 321 GLPtr<GrGLVertexAttrib3fvProc> fVertexAttrib3fv; |
320 GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; | 322 GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; |
321 GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; | 323 GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; |
322 GLPtr<GrGLViewportProc> fViewport; | 324 GLPtr<GrGLViewportProc> fViewport; |
323 | 325 |
324 /* GL_NV_path_rendering */ | 326 // Experimental: Functions for GL_NV_path_rendering. These will be |
325 GLPtr<GrGLMatrixLoadfProc> fMatrixLoadf; | 327 // alphabetized with the above functions once this is fully supported |
326 GLPtr<GrGLMatrixLoadIdentityProc> fMatrixLoadIdentity; | 328 // (and functions we are unlikely to use will possibly be omitted). |
327 GLPtr<GrGLGetProgramResourceLocationProc> fGetProgramResourceLocation; | 329 GLPtr<GrGLGetProgramResourceLocationProc> fGetProgramResourceLocation; |
328 GLPtr<GrGLPathCommandsProc> fPathCommands; | 330 GLPtr<GrGLPathCommandsProc> fPathCommands; |
329 GLPtr<GrGLPathCoordsProc> fPathCoords; | 331 GLPtr<GrGLPathCoordsProc> fPathCoords; |
330 GLPtr<GrGLPathParameteriProc> fPathParameteri; | 332 GLPtr<GrGLPathParameteriProc> fPathParameteri; |
331 GLPtr<GrGLPathParameterfProc> fPathParameterf; | 333 GLPtr<GrGLPathParameterfProc> fPathParameterf; |
332 GLPtr<GrGLGenPathsProc> fGenPaths; | 334 GLPtr<GrGLGenPathsProc> fGenPaths; |
333 GLPtr<GrGLDeletePathsProc> fDeletePaths; | 335 GLPtr<GrGLDeletePathsProc> fDeletePaths; |
334 GLPtr<GrGLIsPathProc> fIsPath; | 336 GLPtr<GrGLIsPathProc> fIsPath; |
335 GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; | 337 GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; |
336 GLPtr<GrGLStencilFillPathProc> fStencilFillPath; | 338 GLPtr<GrGLStencilFillPathProc> fStencilFillPath; |
337 GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; | 339 GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; |
338 GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; | 340 GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; |
339 GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; | 341 GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; |
340 GLPtr<GrGLPathTexGenProc> fPathTexGen; | 342 GLPtr<GrGLPathTexGenProc> fPathTexGen; |
341 GLPtr<GrGLCoverFillPathProc> fCoverFillPath; | 343 GLPtr<GrGLCoverFillPathProc> fCoverFillPath; |
342 GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; | 344 GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; |
343 GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; | 345 GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; |
344 GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; | 346 GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; |
345 // NV_path_rendering v1.2 | 347 // NV_path_rendering v1.2 |
346 GLPtr<GrGLStencilThenCoverFillPathProc> fStencilThenCoverFillPath; | 348 GLPtr<GrGLStencilThenCoverFillPathProc> fStencilThenCoverFillPath; |
347 GLPtr<GrGLStencilThenCoverStrokePathProc> fStencilThenCoverStrokePath; | 349 GLPtr<GrGLStencilThenCoverStrokePathProc> fStencilThenCoverStrokePath; |
348 GLPtr<GrGLStencilThenCoverFillPathInstancedProc> fStencilThenCoverFillPa
thInstanced; | 350 GLPtr<GrGLStencilThenCoverFillPathInstancedProc> fStencilThenCoverFillPa
thInstanced; |
349 GLPtr<GrGLStencilThenCoverStrokePathInstancedProc> fStencilThenCoverStro
kePathInstanced; | 351 GLPtr<GrGLStencilThenCoverStrokePathInstancedProc> fStencilThenCoverStro
kePathInstanced; |
350 // NV_path_rendering v1.3 | 352 // NV_path_rendering v1.3 |
351 GLPtr<GrGLProgramPathFragmentInputGenProc> fProgramPathFragmentInputGen; | 353 GLPtr<GrGLProgramPathFragmentInputGenProc> fProgramPathFragmentInputGen; |
352 GLPtr<GrGLPathMemoryGlyphIndexArrayProc> fPathMemoryGlyphIndexArray; | 354 GLPtr<GrGLPathMemoryGlyphIndexArrayProc> fPathMemoryGlyphIndexArray; |
353 | 355 // NV_framebuffer_mixed_samples |
354 /* NV_framebuffer_mixed_samples */ | |
355 GLPtr<GrGLCoverageModulationProc> fCoverageModulation; | 356 GLPtr<GrGLCoverageModulationProc> fCoverageModulation; |
356 | |
357 /* ARB_draw_instanced */ | |
358 GLPtr<GrGLDrawArraysInstancedProc> fDrawArraysInstanced; | |
359 GLPtr<GrGLDrawElementsInstancedProc> fDrawElementsInstanced; | |
360 | |
361 /* ARB_instanced_arrays */ | |
362 GLPtr<GrGLVertexAttribDivisorProc> fVertexAttribDivisor; | |
363 // EXT_direct_state_access | |
364 GLPtr<GrGLVertexArrayVertexAttribDivisorProc> fVertexArrayVertexAttribDi
visor; | |
365 | |
366 /* NV_bindless_texture */ | |
367 // We use the NVIDIA verson for now because it does not require dynamica
lly uniform handles. | |
368 // We may switch the the ARB version and/or omit methods in the future. | |
369 GLPtr<GrGLGetTextureHandleProc> fGetTextureHandle; | |
370 GLPtr<GrGLGetTextureSamplerHandleProc> fGetTextureSamplerHandle; | |
371 GLPtr<GrGLMakeTextureHandleResidentProc> fMakeTextureHandleResident; | |
372 GLPtr<GrGLMakeTextureHandleNonResidentProc> fMakeTextureHandleNonResiden
t; | |
373 GLPtr<GrGLGetImageHandleProc> fGetImageHandle; | |
374 GLPtr<GrGLMakeImageHandleResidentProc> fMakeImageHandleResident; | |
375 GLPtr<GrGLMakeImageHandleNonResidentProc> fMakeImageHandleNonResident; | |
376 GLPtr<GrGLIsTextureHandleResidentProc> fIsTextureHandleResident; | |
377 GLPtr<GrGLIsImageHandleResidentProc> fIsImageHandleResident; | |
378 GLPtr<GrGLUniformHandleui64Proc> fUniformHandleui64; | |
379 GLPtr<GrGLUniformHandleui64vProc> fUniformHandleui64v; | |
380 GLPtr<GrGLProgramUniformHandleui64Proc> fProgramUniformHandleui64; | |
381 GLPtr<GrGLProgramUniformHandleui64vProc> fProgramUniformHandleui64v; | |
382 | |
383 /* EXT_direct_state_access */ | |
384 // We use the EXT verson because it is more expansive and interacts with
more extensions | |
385 // than the ARB or core (4.5) versions. We may switch and/or omit method
s in the future. | |
386 GLPtr<GrGLTextureParameteriProc> fTextureParameteri; | |
387 GLPtr<GrGLTextureParameterivProc> fTextureParameteriv; | |
388 GLPtr<GrGLTextureParameterfProc> fTextureParameterf; | |
389 GLPtr<GrGLTextureParameterfvProc> fTextureParameterfv; | |
390 GLPtr<GrGLTextureImage1DProc> fTextureImage1D; | |
391 GLPtr<GrGLTextureImage2DProc> fTextureImage2D; | |
392 GLPtr<GrGLTextureSubImage1DProc> fTextureSubImage1D; | |
393 GLPtr<GrGLTextureSubImage2DProc> fTextureSubImage2D; | |
394 GLPtr<GrGLCopyTextureImage1DProc> fCopyTextureImage1D; | |
395 GLPtr<GrGLCopyTextureImage2DProc> fCopyTextureImage2D; | |
396 GLPtr<GrGLCopyTextureSubImage1DProc> fCopyTextureSubImage1D; | |
397 GLPtr<GrGLCopyTextureSubImage2DProc> fCopyTextureSubImage2D; | |
398 GLPtr<GrGLGetTextureImageProc> fGetTextureImage; | |
399 GLPtr<GrGLGetTextureParameterfvProc> fGetTextureParameterfv; | |
400 GLPtr<GrGLGetTextureParameterivProc> fGetTextureParameteriv; | |
401 GLPtr<GrGLGetTextureLevelParameterfvProc> fGetTextureLevelParameterfv; | |
402 GLPtr<GrGLGetTextureLevelParameterivProc> fGetTextureLevelParameteriv; | |
403 // OpenGL 1.2 | |
404 GLPtr<GrGLTextureImage3DProc> fTextureImage3D; | |
405 GLPtr<GrGLTextureSubImage3DProc> fTextureSubImage3D; | |
406 GLPtr<GrGLCopyTextureSubImage3DProc> fCopyTextureSubImage3D; | |
407 GLPtr<GrGLCompressedTextureImage3DProc> fCompressedTextureImage3D; | |
408 GLPtr<GrGLCompressedTextureImage2DProc> fCompressedTextureImage2D; | |
409 GLPtr<GrGLCompressedTextureImage1DProc> fCompressedTextureImage1D; | |
410 GLPtr<GrGLCompressedTextureSubImage3DProc> fCompressedTextureSubImage3D; | |
411 GLPtr<GrGLCompressedTextureSubImage2DProc> fCompressedTextureSubImage2D; | |
412 GLPtr<GrGLCompressedTextureSubImage1DProc> fCompressedTextureSubImage1D; | |
413 GLPtr<GrGLGetCompressedTextureImageProc> fGetCompressedTextureImage; | |
414 // OpenGL 1.5 | |
415 GLPtr<GrGLNamedBufferDataProc> fNamedBufferData; | |
416 GLPtr<GrGLNamedBufferSubDataProc> fNamedBufferSubData; | |
417 GLPtr<GrGLMapNamedBufferProc> fMapNamedBuffer; | |
418 GLPtr<GrGLUnmapNamedBufferProc> fUnmapNamedBuffer; | |
419 GLPtr<GrGLGetNamedBufferParameterivProc> fGetNamedBufferParameteriv; | |
420 GLPtr<GrGLGetNamedBufferPointervProc> fGetNamedBufferPointerv; | |
421 GLPtr<GrGLGetNamedBufferSubDataProc> fGetNamedBufferSubData; | |
422 // OpenGL 2.0 | |
423 GLPtr<GrGLProgramUniform1fProc> fProgramUniform1f; | |
424 GLPtr<GrGLProgramUniform2fProc> fProgramUniform2f; | |
425 GLPtr<GrGLProgramUniform3fProc> fProgramUniform3f; | |
426 GLPtr<GrGLProgramUniform4fProc> fProgramUniform4f; | |
427 GLPtr<GrGLProgramUniform1iProc> fProgramUniform1i; | |
428 GLPtr<GrGLProgramUniform2iProc> fProgramUniform2i; | |
429 GLPtr<GrGLProgramUniform3iProc> fProgramUniform3i; | |
430 GLPtr<GrGLProgramUniform4iProc> fProgramUniform4i; | |
431 GLPtr<GrGLProgramUniform1fvProc> fProgramUniform1fv; | |
432 GLPtr<GrGLProgramUniform2fvProc> fProgramUniform2fv; | |
433 GLPtr<GrGLProgramUniform3fvProc> fProgramUniform3fv; | |
434 GLPtr<GrGLProgramUniform4fvProc> fProgramUniform4fv; | |
435 GLPtr<GrGLProgramUniform1ivProc> fProgramUniform1iv; | |
436 GLPtr<GrGLProgramUniform2ivProc> fProgramUniform2iv; | |
437 GLPtr<GrGLProgramUniform3ivProc> fProgramUniform3iv; | |
438 GLPtr<GrGLProgramUniform4ivProc> fProgramUniform4iv; | |
439 GLPtr<GrGLProgramUniformMatrix2fvProc> fProgramUniformMatrix2fv; | |
440 GLPtr<GrGLProgramUniformMatrix3fvProc> fProgramUniformMatrix3fv; | |
441 GLPtr<GrGLProgramUniformMatrix4fvProc> fProgramUniformMatrix4fv; | |
442 // OpenGL 2.1 | |
443 GLPtr<GrGLProgramUniformMatrix2x3fvProc> fProgramUniformMatrix2x3fv; | |
444 GLPtr<GrGLProgramUniformMatrix3x2fvProc> fProgramUniformMatrix3x2fv; | |
445 GLPtr<GrGLProgramUniformMatrix2x4fvProc> fProgramUniformMatrix2x4fv; | |
446 GLPtr<GrGLProgramUniformMatrix4x2fvProc> fProgramUniformMatrix4x2fv; | |
447 GLPtr<GrGLProgramUniformMatrix3x4fvProc> fProgramUniformMatrix3x4fv; | |
448 GLPtr<GrGLProgramUniformMatrix4x3fvProc> fProgramUniformMatrix4x3fv; | |
449 // OpenGL 3.0 | |
450 GLPtr<GrGLNamedRenderbufferStorageProc> fNamedRenderbufferStorage; | |
451 GLPtr<GrGLGetNamedRenderbufferParameterivProc> fGetNamedRenderbufferPara
meteriv; | |
452 GLPtr<GrGLNamedRenderbufferStorageMultisampleProc> fNamedRenderbufferSto
rageMultisample; | |
453 GLPtr<GrGLCheckNamedFramebufferStatusProc> fCheckNamedFramebufferStatus; | |
454 GLPtr<GrGLNamedFramebufferTexture1DProc> fNamedFramebufferTexture1D; | |
455 GLPtr<GrGLNamedFramebufferTexture2DProc> fNamedFramebufferTexture2D; | |
456 GLPtr<GrGLNamedFramebufferTexture3DProc> fNamedFramebufferTexture3D; | |
457 GLPtr<GrGLNamedFramebufferRenderbufferProc> fNamedFramebufferRenderbuffe
r; | |
458 GLPtr<GrGLGetNamedFramebufferAttachmentParameterivProc> fGetNamedFramebu
fferAttachmentParameteriv; | |
459 GLPtr<GrGLGenerateTextureMipmapProc> fGenerateTextureMipmap; | |
460 GLPtr<GrGLFramebufferDrawBufferProc> fFramebufferDrawBuffer; | |
461 GLPtr<GrGLFramebufferDrawBuffersProc> fFramebufferDrawBuffers; | |
462 GLPtr<GrGLFramebufferReadBufferProc> fFramebufferReadBuffer; | |
463 GLPtr<GrGLGetFramebufferParameterivProc> fGetFramebufferParameteriv; | |
464 GLPtr<GrGLNamedCopyBufferSubDataProc> fNamedCopyBufferSubData; | |
465 GLPtr<GrGLVertexArrayVertexOffsetProc> fVertexArrayVertexOffset; | |
466 GLPtr<GrGLVertexArrayColorOffsetProc> fVertexArrayColorOffset; | |
467 GLPtr<GrGLVertexArrayEdgeFlagOffsetProc> fVertexArrayEdgeFlagOffset; | |
468 GLPtr<GrGLVertexArrayIndexOffsetProc> fVertexArrayIndexOffset; | |
469 GLPtr<GrGLVertexArrayNormalOffsetProc> fVertexArrayNormalOffset; | |
470 GLPtr<GrGLVertexArrayTexCoordOffsetProc> fVertexArrayTexCoordOffset; | |
471 GLPtr<GrGLVertexArrayMultiTexCoordOffsetProc> fVertexArrayMultiTexCoordO
ffset; | |
472 GLPtr<GrGLVertexArrayFogCoordOffsetProc> fVertexArrayFogCoordOffset; | |
473 GLPtr<GrGLVertexArraySecondaryColorOffsetProc> fVertexArraySecondaryColo
rOffset; | |
474 GLPtr<GrGLVertexArrayVertexAttribOffsetProc> fVertexArrayVertexAttribOff
set; | |
475 GLPtr<GrGLVertexArrayVertexAttribIOffsetProc> fVertexArrayVertexAttribIO
ffset; | |
476 GLPtr<GrGLEnableVertexArrayProc> fEnableVertexArray; | |
477 GLPtr<GrGLDisableVertexArrayProc> fDisableVertexArray; | |
478 GLPtr<GrGLEnableVertexArrayAttribProc> fEnableVertexArrayAttrib; | |
479 GLPtr<GrGLDisableVertexArrayAttribProc> fDisableVertexArrayAttrib; | |
480 GLPtr<GrGLGetVertexArrayIntegervProc> fGetVertexArrayIntegerv; | |
481 GLPtr<GrGLGetVertexArrayPointervProc> fGetVertexArrayPointerv; | |
482 GLPtr<GrGLGetVertexArrayIntegeri_vProc> fGetVertexArrayIntegeri_v; | |
483 GLPtr<GrGLGetVertexArrayPointeri_vProc> fGetVertexArrayPointeri_v; | |
484 GLPtr<GrGLMapNamedBufferRangeProc> fMapNamedBufferRange; | |
485 GLPtr<GrGLFlushMappedNamedBufferRangeProc> fFlushMappedNamedBufferRange; | |
486 | |
487 /* KHR_debug */ | |
488 GLPtr<GrGLDebugMessageControlProc> fDebugMessageControl; | |
489 GLPtr<GrGLDebugMessageInsertProc> fDebugMessageInsert; | |
490 GLPtr<GrGLDebugMessageCallbackProc> fDebugMessageCallback; | |
491 GLPtr<GrGLGetDebugMessageLogProc> fGetDebugMessageLog; | |
492 GLPtr<GrGLPushDebugGroupProc> fPushDebugGroup; | |
493 GLPtr<GrGLPopDebugGroupProc> fPopDebugGroup; | |
494 GLPtr<GrGLObjectLabelProc> fObjectLabel; | |
495 } fFunctions; | 357 } fFunctions; |
496 | 358 |
497 // Per-GL func callback | 359 // Per-GL func callback |
498 #if GR_GL_PER_GL_FUNC_CALLBACK | 360 #if GR_GL_PER_GL_FUNC_CALLBACK |
499 GrGLInterfaceCallbackProc fCallback; | 361 GrGLInterfaceCallbackProc fCallback; |
500 GrGLInterfaceCallbackData fCallbackData; | 362 GrGLInterfaceCallbackData fCallbackData; |
501 #endif | 363 #endif |
502 | 364 |
503 // This exists for internal testing. | 365 // This exists for internal testing. |
504 virtual void abandon() const {} | 366 virtual void abandon() const {} |
505 }; | 367 }; |
506 | 368 |
507 #endif | 369 #endif |
OLD | NEW |