mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-19 15:32:31 +00:00
LibWeb: Save WebGL context pointer in WebGLObject
This way we could be sure that context object won't be deallocated before any of the objects that belong to it. Having a context pointer is also going to be used in upcoming changes to generate an INVALID_OPERATION error if an object does not belong to the context it's being used in.
This commit is contained in:
parent
b909e3d587
commit
cf730870c5
Notes:
github-actions[bot]
2024-12-19 12:39:49 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: cf730870c5
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2965
28 changed files with 127 additions and 80 deletions
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include <LibWeb/Bindings/PlatformObject.h>
|
||||
#include <LibWeb/WebGL/Types.h>
|
||||
#include <LibWeb/WebGL/WebGLRenderingContextBase.h>
|
||||
|
||||
namespace Web::WebGL {
|
||||
|
||||
|
@ -25,16 +26,20 @@ public:
|
|||
GLuint handle() const { return m_handle; }
|
||||
|
||||
protected:
|
||||
explicit WebGLObject(JS::Realm&, GLuint handle);
|
||||
explicit WebGLObject(JS::Realm&, WebGLRenderingContextBase&, GLuint handle);
|
||||
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
void initialize(JS::Realm&) override;
|
||||
void visit_edges(Visitor&) override;
|
||||
|
||||
bool invalidated() const { return m_invalidated; }
|
||||
|
||||
private:
|
||||
// FIXME: It should be GC::Ptr instead of raw pointer, but we need to make WebGLRenderingContextBase inherit from PlatformObject first.
|
||||
WebGLRenderingContextBase* m_context;
|
||||
GLuint m_handle { 0 };
|
||||
|
||||
bool m_invalidated { false };
|
||||
String m_label;
|
||||
GLuint m_handle { 0 };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue