📄 swarm.space.dblbuffer2d.protocol.html
字号:
<HTML><HEAD><TITLE>DblBuffer2d</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.53"><LINKREL="HOME"TITLE="Documentation Set for Swarm 2.1.1"HREF="set.html"><LINKREL="UP"TITLE="Space Library"HREF="swarm.space.sgml.reference.html"><LINKREL="PREVIOUS"TITLE="ConwayLife2d"HREF="swarm.space.conwaylife2d.protocol.html"><LINKREL="NEXT"TITLE="Diffuse2d"HREF="swarm.space.diffuse2d.protocol.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Documentation Set for Swarm 2.1.1</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="swarm.space.conwaylife2d.protocol.html">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Reference X. Space Library</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="swarm.space.diffuse2d.protocol.html">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><H1><ANAME="SWARM.SPACE.DBLBUFFER2D.PROTOCOL">DblBuffer2d</A></H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN22782"></A><H2>Name</H2>DblBuffer2d -- A double buffered space.</DIV><DIVCLASS="REFSECT1"><ANAME="AEN22785"></A><H2>Description</H2><P> DblBuffer2d augments Discrete2d to provide a form of double buffered space. Two lattices are maintained: lattice (the current state), and newLattice (the future state). All reads take place from lattice, all writes take place to newLattice. newLattice is copied to lattice when updateLattice is called. DblBuffer2d can be used to implement one model of concurrent action, like in Ca2ds. NOTE: be very careful if you're using low-level macro access to the world, in particular be sure that you preserve the write semantics on the newLattice.</P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN22788"></A><H2>Protocols adopted by DblBuffer2d</H2><P> <AHREF="swarm.space.discrete2d.protocol.html">Discrete2d</A> <AHREF="swarm.defobj.creatable.protocol.html">CREATABLE</A></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN22793"></A><H2>Methods</H2><DIVCLASS="REFSECT2"><ANAME="AEN22795"></A><H3>Phase: Creating</H3><P></P><UL><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PC.M41"></A><P></P>+ <BCLASS="FUNCPROTOTYPE">create:</B> (id <Zone>)<VARCLASS="PDPARAM">aZone</VAR> <BCLASS="FUNCPROTOTYPE">setSizeX:</B> (unsigned)<VARCLASS="PDPARAM">x</VAR> <BCLASS="FUNCPROTOTYPE">Y:</B> (unsigned)<VARCLASS="PDPARAM">y</VAR> <BR> Convenience constructor for DblBuffer lattice<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PC.M228"></A><P></P>- <BCLASS="FUNCPROTOTYPE">createEnd</B><BR> Rewrites the method from Discrete2d. Allocate two lattices, makes the offsets.<P></P></DIV></LI></UL></DIV><DIVCLASS="REFSECT2"><ANAME="AEN22819"></A><H3>Phase: Using</H3><P></P><UL><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PU.M432"></A><P></P>- (id *)<BCLASS="FUNCPROTOTYPE">getNewLattice</B><BR> Return a pointer to the newLattice buffer.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PU.M938"></A><P></P>- <BCLASS="FUNCPROTOTYPE">updateLattice</B><BR> Copy newLattice to lattice, in effect updating the lattice. <P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PU.M621"></A><P></P>- <BCLASS="FUNCPROTOTYPE">putObject:</B> <VARCLASS="PDPARAM">anObject</VAR> <BCLASS="FUNCPROTOTYPE">atX:</B> (unsigned)<VARCLASS="PDPARAM">x</VAR> <BCLASS="FUNCPROTOTYPE">Y:</B> (unsigned)<VARCLASS="PDPARAM">y</VAR> <BR> Overridden so writes happen to newLattice.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.SPACE.DBLBUFFER2D.METHOD.PU.M628"></A><P></P>- <BCLASS="FUNCPROTOTYPE">putValue:</B> (long)<VARCLASS="PDPARAM">v</VAR> <BCLASS="FUNCPROTOTYPE">atX:</B> (unsigned)<VARCLASS="PDPARAM">x</VAR> <BCLASS="FUNCPROTOTYPE">Y:</B> (unsigned)<VARCLASS="PDPARAM">y</VAR> <BR> Overridden so writes happen to newLattice.<P></P></DIV></LI></UL></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="swarm.space.conwaylife2d.protocol.html">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="set.html">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="swarm.space.diffuse2d.protocol.html">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">ConwayLife2d</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="swarm.space.sgml.reference.html">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Diffuse2d</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -